有谁知道如何将url参数传递到Web浏览器控件中的本地页面?
当您单独导航到该页面时"/Html/MyPage.html"
一切正常但是只要您添加参数"/Html/MyPage.html?Message=Hello"
,我就会收到一个错误页面,指出我们无法导航到该页面。
有什么想法吗?
答案 0 :(得分:2)
作为一种可行的脏解决方法,您可以按照以下方式实现:
一个。导航到没有任何参数的页面
B中。将以下逻辑的参数附加到以下事件之一
WebBrowser.Navigated Event - 成功导航后
WebBrowser.LoadCompleted Event - 在WebBrowser控件加载内容后发生。
℃。使用webBrowser.InvokeScript (C#)
将参数注入html页面webBrowser.InvokeScript("eval", new string[] {"processArgs('someArgs') or any generated/custom script"});
或
webBrowser.InvokeScript("processArgs", new string[] {"someArgs"});
其中processArgs在html文件中的某处定义。
答案 1 :(得分:1)
作为另一种解决方法,您可以将参数作为位置哈希参数传递(如果未使用)
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加载)