WebブラウザコントロールのローカルページにURLパラメータを渡す方法を知っている人はいますか?
ページだけに移動すると"/Html/MyPage.html"
すべて問題ありませんが、パラメータを追加するとすぐ"/Html/MyPage.html?Message=Hello"
に、ページに移動できなかったことを示すエラーページが表示されます。
何か案は?
WebブラウザコントロールのローカルページにURLパラメータを渡す方法を知っている人はいますか?
ページだけに移動すると"/Html/MyPage.html"
すべて問題ありませんが、パラメータを追加するとすぐ"/Html/MyPage.html?Message=Hello"
に、ページに移動できなかったことを示すエラーページが表示されます。
何か案は?
うまくいく汚い回避策として、これを次のように実装できます。
A.パラメータなしでページに移動します
B.以下のロジックを渡す引数を次のイベントのいずれかに添付します
WebBrowser.Navigatedイベント-正常にナビゲートされたとき
WebBrowser.LoadCompletedイベント-WebBrowserコントロールがコンテンツをロードした後に発生します。
C. webBrowser.InvokeScript(C#)を使用してhtmlページに引数を挿入します
webBrowser.InvokeScript("eval", new string[] {"processArgs('someArgs') or any generated/custom script"});
また
webBrowser.InvokeScript("processArgs", new string[] {"someArgs"});
ここで、processArgsはhtmlファイルのどこかで定義されています。
別の回避策として、引数をロケーションハッシュパラメーターとして渡すことができます(使用されていない場合)
browser.Navigate(new Uri("www/index.html#p=123&p2=567", UriKind.Relative));
そしてindex.htmlで
var args = window.location.hash;
(args ='#p = 123&p2 = 567')
WP7でテスト済み(index.htmlは分離されたストレージに保存されます)+ WP8(index.htmlはXAPから直接ロードされます)