WP7 InvokeScript error
本文关键字:error InvokeScript WP7 | 更新日期: 2023-09-27 18:29:12
我对wp7:上的方法InvokeScript
有一些困难
webBrowser1.InvokeScript("eval", string.Format("document.getElementsByName('email').value='{0}'", _email));
webBrowser1.InvokeScript("eval", string.Format("document.getElementsByName('pass').value='{0}'", _pass));
webBrowser1.InvokeScript("eval", "document.forms[0].submit();");
不幸的是,当我尝试使用(document.forms[0].submit())
提交信息时,会抛出一个异常,并显示消息:
出现未知错误。错误:80020101。
可能是什么问题?
首先确保IsScriptingEnabled为true,但我认为您做到了。
你的问题可能是你调用代码太早了。当Navigated事件发生时,DOM似乎还没有准备好进行操作。示例:
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
Wb.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(Wb_Navigated);
MouseLeftButtonDown += new MouseButtonEventHandler(MainPage_MouseLeftButtonDown);
Wb.NavigateToString("<html><body><form action='http://google.com/'></form></body></html>");
}
void Wb_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
Wb.InvokeScript("eval", "document.forms[0].submit();"); // Throws 80020101
}
private void MainPage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Wb.InvokeScript("eval", "document.forms[0].submit();"); // Works
}
}
Script可以直接提交表单-我有一个依赖于该行为的应用程序。:)
问题是,当页面上没有脚本时(在某些情况下,当只有一个小脚本时——我无法隔离它),浏览器不会加载(或者可能加载和卸载)脚本引擎。当这种情况发生时,您根本无法执行任何脚本。
在一个特定的案例中,对我有用的一件事是制作HTML的本地副本,向其中添加随机脚本,并将其作为字符串加载到浏览器中,但这显然不适用于所有内容。
在另一种情况下,我的另一种选择(尽管还有更多的工作)是使用HtmlAgilityPack来阅读HTML并自己完成帖子。