【问题标题】:UIWebView get HTML SourceUIWebView 获取 HTML 源代码
【发布时间】:2011-03-03 21:50:17
【问题描述】:

我试图在不重新下载的情况下获取 UIWebView 的 HTML 源代码(也就是再次下载,例如 [NSData dataWithContentsOfURL:(NSURL*)URL] 或启动 NSURLRequest。浏览 UIWebView 标头和文档,似乎没有办法访问当前加载的源的 NSData。我错过了什么吗?

【问题讨论】:

  • 我有同样的问题,因为在某些情况下我的 webview 是空白的,我想看看那里是否有 html。我认为 [webview stringByEvaluatingJavaScriptFromString:script] 可能是一个开始,但我不知道什么 javascript 会带回整个文档。
  • 正如下面的答案所说,逆向操作更容易(获取数据,然后将其加载到 Web 视图中)。我编写了一个用于下载数据的包装类(使其更简单,并且您还可以获得 MIME 类型)如果有人想要它只是评论,如果它不适合评论,我会将其作为答案发布。但是我确实想知道如何使后退/前进按钮起作用。谁能告诉我?
  • @Alexandre Cassagne,您能否发布您的包装类或将其发布到snipplr.com?这就是我所需要的,因为我无法以我计划的其他方式获取 html 源/数据。谢谢
  • 是的,我现在不在我的 Mac 上,但会尽快发送给您。只是简单的使用NSURLRequest的方式,没什么花哨的
  • 你们去吧,我添加了一个测试应用来演示它。没什么太花哨的,但它就在那里 PS:如果有人知道如何做预处理器来确定它是否会为 iOS 或 Mac OS 编译

标签: html objective-c cocoa-touch uiwebview


【解决方案1】:

UIWebView 可以执行 javascript 代码,这样就可以解决了。

NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"];

【讨论】:

  • 谢谢!这也处理从 javascript 呈现 HTML 的情况。
【解决方案2】:

逆应该做你想做的事。也就是说,将 URL 加载到 NSData 对象中,然后使用 – loadData:MIMEType:textEncodingName:baseURL: 从该对象加载 UIWebView

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多