WebKitBrowser.StringByEvaluatingJavaScriptFromString不返回任何值

我需要在所有 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(当然你可以改变它)

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...