gpt4 book ai didi

javascript - WebKitBrowser.StringByEvaluatingJavaScriptFromString 不返回任何值

转载 作者:搜寻专家 更新时间:2023-10-31 08:54:42 26 4
gpt4 key购买 nike

我需要在所有 javascript 运行后获取 html。我为此使用 WebKit.NET,问题是 WebKitBrowser.StringByEvaluatingJavaScriptFromString 即使使用简单的 alert() 也不会返回任何内容。当我传递“document.getElementsByTagName(' html')[0].outerHTML"(这实际上是我需要得到的)作为它抛出 System.AccessViolationException(尝试读取或写入 protected 内存)的参数。当然,我确实在坚持 DocumentCompleted 委托(delegate)的函数中调用了 StringByEvaluatingJavaScriptFromString。我尝试在 objective-c 中使用相同的函数 StringByEvaluatingJavaScriptFromString 和相同的参数“document.getElementsByTagName('html') 对 WebView 做同样的事情)[0].outerHTML”,它与浏览器控制台中的“document.getElementsByTagName('html')[0].outerHTML”一起工作得很好。请帮助或提供替代方案如何在运行所有 javascript 后获得整个 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.StringByEvaluatingJavaScriptFromStringwebKitBrowser1.Document.InvokeScriptMethod 集成:

所以你有这个:

webKitBrowser1.StringByEvaluatingJavaScriptFromString("function GetElement() {document.getElementsByTagName('html')[0].outerHTML};")
var returnvalue = (string) webKitBrowser1.Document.InvokeScriptMethod("GetElement");

其中返回值为对象字符串代码中的returnvalue(当然你可以改)

关于javascript - WebKitBrowser.StringByEvaluatingJavaScriptFromString 不返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29105153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com