有谁知道如何将 url 参数传递到 Web 浏览器控件中的本地页面?
当您单独导航到该页面时,"/Html/MyPage.html"
一切都很好,但是一旦您添加了一个参数"/Html/MyPage.html?Message=Hello"
,我就会收到一个错误页面,指出我们无法导航到该页面。
有任何想法吗?
有谁知道如何将 url 参数传递到 Web 浏览器控件中的本地页面?
当您单独导航到该页面时,"/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 加载)上测试