3

有谁知道如何将 url 参数传递到 Web 浏览器控件中的本地页面?

当您单独导航到该页面时,"/Html/MyPage.html"一切都很好,但是一旦您添加了一个参数"/Html/MyPage.html?Message=Hello",我就会收到一个错误页面,指出我们无法导航到该页面。
有任何想法吗?

4

2 回答 2

2

作为一种有效的解决方法,您可以按如下方式实现:

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 文件中的某处定义。

于 2012-11-27T12:33:25.953 回答
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 加载)上测试

于 2012-11-27T18:53:33.530 回答