gpt4 book ai didi

objective-c - 获取 UIWebView 的完整内容,包括 !doctype 和 html 标签

转载 作者:行者123 更新时间:2023-11-29 04:38:43 24 4
gpt4 key购买 nike

我一直在探索 [_webView stringByEvaluatingJavaScriptFromString:@"document.all[0].outerHTML"] 但这留下了 !doctype 标记。

我试图避免 stringWithContentsOfURL: 因为它进行新的调用。

有什么方法可以获取 UIWebView 的完整源代码,包括 !doctype 和 html 标签?

最佳答案

无法在一个方法调用中获取 Doctype 和其余 HTML 代码。但是,您可以像这样使用 Javascript 构建 Doctype(此 Javascript 解决方案归功于 Rob W):

var node = document.doctype;
var html = "<!DOCTYPE "
+ node.name
+ (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '')
+ (!node.publicId && node.systemId ? ' SYSTEM' : '')
+ (node.systemId ? ' "' + node.systemId + '"' : '')
+ '>';

因此,将此 Javascript 代码放入 NSString 中,并使用它调用 stringByEvaluatingJavaScriptFromString: 。这应该会给你 !Doctype。然后,您可以按照问题中所述添加其余的 HTML。

但是我想建议第二种方法:首先使用 stringWithContentsOfURL: 将 URL 的内容加载到 NSString 中,然后使用 loadHTMLString:baseURL 将 NSString 加载到 UIWebView 中:

通过这种方法,您可以获得真正完整的 HTML 作为字符串(包括实际的 !Doctype 和 html 标签),并且只使用 1 个请求。只需确保使用正确的 baseURL,以便正确加载 CSS 和 JS 文件以及引用的图像。

关于objective-c - 获取 UIWebView 的完整内容,包括 !doctype 和 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705124/

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