加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

WebKitBrowser.StringByEvaluatingJavaScriptFromString不返回任

发布时间:2020-12-16 07:11:14 所属栏目:百科 来源:网络整理
导读:我需要在所有 javascripts运行后获取html.我使用WebKit.NET,问题是WebKitBrowser.StringByEvaluating JavaScriptFromString即使使用简单的alert()也不返回任何内容.当我传递“document.getElementsByTagName(‘html’)时[0] .outerHTML“(它实际上是我需要得
我需要在所有 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(当然你可以改变它)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读