我有一个非常简单的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之外我可以使用的更多交叉兼容的东西?我还没有找到任何东西..
答案 0 :(得分:2)
这似乎实际上可能是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();");