4

たくさんのリンクがある非常にシンプルな Silverlight インターフェイスがあります。古い学校の html エリア マップのようなもので、さまざまな部分が内部ネットワークのさまざまな場所に移動します。

開発ボックスの IE で自分のページをテストしていて、使用してページをリダイレクトすることに成功していました

HtmlPage.Window.Navigate(New Uri("http://mytestbox02/"))

ソースのコピーをラップトップに持っていきましたが、VS2010 のデフォルトのブラウザーがたまたま Chrome だったのですが、驚いたことにリンクが機能しませんでした。リダイレクトが見られることもありましたが、URI がめちゃくちゃになり、最終的にmytestbox02/の形式になり、http:// プレフィックスが欠落していたため、404 以外に移動しませんでした。時々、例外が発生します。その例外の詳細は

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 以外に使用できる、より互換性のあるものはありますか? まだ何も見つかっていませんが..

4

1 に答える 1

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();");
于 2012-08-30T21:52:00.920 に答える