我需要在所有
javascripts运行后获取html.我使用WebKit.NET,问题是WebKitbrowser.StringByEvaluating
JavaScriptFromString即使使用简单的alert()也不返回任何内容.当我传递“document.getElementsByTagName(‘html’)时[0] .outerHTML“(它实际上是我需要得到的)作为它抛出System.AccessViolationException的参数(试图读取或写入受保护的内存).当然我会在坚持DocumentCompleted委托的函数中调用StringByEvaluatingJavaScriptFromString.我尝试使用相同的函数StringByEvaluatingJavaScriptFromString并使用相同的参数“document.getElementsByTagName(‘html’)对Objective-c中的WebView执行相同的操作. )[0] .outerHTML“并且它在浏览器的控制台中使用”document.getElementsByTagName(‘html’)[0] .outerHTML“并且效果很好.请帮助或者给出替代方案如何在runnig all javascripts之后获得完整的html.
public Form1() { InitializeComponent(); webKitbrowser1.Navigate("http://famous-design.ru/stoly/"); webKitbrowser1.DocumentCompleted += webKitbrowser1_DocumentCompleted; } void webKitbrowser1_DocumentCompleted(object sender,WebbrowserDocumentCompletedEventArgs e) { string str = webKitbrowser1.StringByEvaluatingJavaScriptFromString("document.getElementsByTagName('html')[0].outerHTML"); }
解决方法
我所做的是将webKitbrowser1.StringByEvaluatingJavaScriptFromString与webKitbrowser1.Document.InvokeScriptMethod集成:
所以你有这个:
webKitbrowser1.StringByEvaluatingJavaScriptFromString("function GetElement() {document.getElementsByTagName('html')[0].outerHTML};") var returnvalue = (string) webKitbrowser1.Document.InvokeScriptMethod("GetElement");
返回值是带有对象字符串的代码中的returnvalue(当然你可以改变它)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。