Web浏览器控件和查询字符串WP7

时间:2010-11-18 10:21:36

标签: silverlight windows-phone-7 browser

我正在使用WebBrowser控件来启动和浏览Windows Phone 7模拟器和设备中本地加载的一些html文件。一切正常,直到我们使用查询字符串的网页导航。 javascript需要读取这些查询字符串,但是当包含查询字符串时导航完全失败。没有查询字符串,导航工作正常。

我很高兴坚持这一点,非常感谢你的想法。 贝

2 个答案:

答案 0 :(得分:7)

我也找不到将查询字符串传递给本地HTML文件的方法。 (我将HTML文件复制到隔离存储并从那里查看。)

...然而
我可以成功导航到本地HTML文件并指定片段。如果片段包含等号(=)和&符号(&),它甚至可以工作,所以你可以这样做:

webBrowser1.Navigate(new Uri("index.html#123=abc&456=def", UriKind.Relative));

使用以下

获取值
<html>
<head>
    <script type="text/javascript">
        function onLoad() {
            fs.innerHTML = document.location.href.split("#")[1];
        }
    </script>
</head>
<body onload="onLoad()" >
    <p id="fs" />
</body>
</html>

在页面上显示以下内容(在浏览器控件中)。

 123=abc&456=def

(显然你可以根据需要用javascript中的值做更合适的事情。)

是的,您可以像查询字符串一样使用fragent。

这显然可以正常工作,只要您不需要同时使用它们。

答案 1 :(得分:0)

如果传递查询字符串,则需要一个网络服务器。

这是因为浏览器不知道另一个文件的区别是什么是查询字符串。它只认为文件名为“file.html?param = value”搜索此文件,但在本地找不到。

所以在没有网络服务器的情况下,这是不可能的。


<强>解决方案

  1. 在本地生成一个小型网络服务器。
  2. 破解一些js以了解它何时是本地的并用查询字符串替换所有链接到hashtags