Windows Phone WebBrowser控件:操作页面DOM






4.86/5 (3投票s)
展示如何在Windows Phone的WebBrowser控件中加载的页面中操作DOM。
引言
如果你熟悉桌面(Windows Forms)编程,你应该知道WebBrowser控件有一个名为Document(类型为HtmlDocument
)的属性。这个属性允许我们操作页面的DOM。
然而,这个属性在Windows Phone WebBrowser控件中不存在。但仍然有办法操作页面的DOM,那就是使用JavaScript。
背景
基本上,我的代码使用WebBrowser的InvokeScript
函数,借助JavaScript来操作页面的DOM。
这段代码基于我在另一篇文章中描述的概念
重要提示
在开始调用脚本之前,首先将IsScriptEnabled属性设置为True
,否则它将无法工作。
Using the Code
以下是通过JavaScript操作DOM的一个例子
string script = "function() { return document.getElementById('ElementID').innerText; }";
string elementInnerText = (string)WebBrowser1.InvokeScript("eval", script);
在上面的例子中,我使用一个小脚本来获取网页中某个元素的InnerText
属性。
备注
不幸的是,我没有安装Windows Phone SDK。因此,我无法测试上面的代码。
然而,根据理论和文档,这是正确的方法。
如果在调用InvokeScript
方法时遇到任何异常,请尝试修改你的脚本。记住,同样的事情可以用很多种方式完成。
我应该指出的是,相同的脚本可能无法在所有版本的Windows Phone上工作,所以你应该进行测试!
原始源代码
这篇文章最初发布在我的个人博客(巴西葡萄牙语)。
如果你会葡萄牙语,请务必访问原始文章