我有一个非常简单的silverlight界面,上面有一堆链接.有点像旧学校的html区域地图,其中不同的部分将您带到内部网络上的不同位置.
我正在开发框中在IE中测试我的页面,并且成功地使用了重定向页面
HtmlPage.Window.Navigate(New Uri("http://mytestbox02/"))
我把源代码的副本带到我的笔记本电脑上,其中VS2010的默认浏览器恰好是Chrome,令我惊讶的是我的链接无效.有时我看到它重定向,但它损坏了uri,它最终以mytestbox02 /的形式出现,因此它没有去除404,因为它缺少http://前缀.有时我得到一个例外.该例外的细节是
System.InvalidOperationException was caught
Message=SetProperty failed.
StackTrace:
at System.Windows.Browser.ScriptObject.SetProperty(String name, Object value)
at System.Windows.Browser.ScriptObject.GetObjectForSafari(IntPtr identity, IntPtr handle, Type type, Boolean releaseReferenceOnDispose)
at System.Windows.Browser.ScriptObject.GetObject(IntPtr handle, Type type, Boolean ownsHandle, Boolean releaseReferenceOnDispose)
at System.Windows.Hosting.ScriptingInterface.GetScriptParamValue(ScriptParam scriptParam)
at System.Windows.Hosting.ScriptingInterface.ConvertFromScriptParamAndDispose(ScriptParam scriptParam)
at System.Windows.Browser.ScriptObject.TryInvoke(String name, Object[] args, Exception& error)
at System.Windows.Browser.ScriptObject.Invoke(String name, Object[] args)
at System.Windows.Browser.HtmlWindow.Navigate(Uri navigateToUri, String target, String targetFeatures)
at System.Windows.Browser.HtmlWindow.Navigate(Uri navigateToUri)
at popupwindow.MainPage.ChildWindow_Closed(Object sender, EventArgs e)
InnerException:
开发箱和我的笔记本电脑上的Silverlight 4.1.10111.0.
有什么想法在这里发生了什么?我不能完全确定我的客户将使用IE,所以我希望有一个解决方案.或者除了window.navigate之外我可以使用的更多交叉兼容的东西?我还没有找到任何东西..
最佳答案 事实上,这可能是一个Chrome问题 – 我只是花了一天时间与它斗争.
http://forums.silverlight.net/t/213769.aspx/1
http://stulic.blogspot.com/2009/08/javascript-locationhref-vs-silverlight.html
你可能需要使用某种javascript.
HtmlPage.Window.Eval("window.location.href = '<something>';");
//or
HtmlPage.Window.Eval("window.location.reload();");