【问题标题】:how to handle iframes/frames dom in the iphone uiwebview如何在 iphone uiwebview 中处理 iframes/frames dom
【发布时间】:2011-02-05 11:41:03
【问题描述】:

(void) webViewDidFinishLoad: (UIWebView*)webView

我注入了一些 javascript 来处理 iframe。例如

    stringByEvaluatingJavaScriptFromString: 
@"try {
    var document = window.document.getElementsByTagName('iframe')[0].contentWindow.document.getElementsByTagName('frame'); 
    } catch (e) {
    alert (e.message);
    }"

它告诉我 iframes 文档未定义。其实我已经尝试打印了iframe的contentWindow的所有属性,但是完全是空的。

我知道每个帧加载可能会多次调用 webViewDidFinishLoad。但我永远无法获得 iframe 文档。我认为至少应该有一次所有 iframe 都准备好。

谁能告诉我如何获取 iframe 文档来处理 uiwebview 中的 dom?

谢谢

【问题讨论】:

  • 经过测试,发现其实是javascript跨域限制造成的。注入的 javascript 总是在顶部窗口中,如果这个顶部窗口中 iframe 的 src 引用另一个域,则无法获取此 iframe 中的任何属性。那么就没有办法处理这个iframe了。有人有办法访问这个 iframe 吗?谢谢

标签: javascript iphone iframe uiwebview frame


【解决方案1】:

您应该使用 postMessage Api 来访问跨域 iframe 中的代码。 请参阅here 了解有关如何实现此功能的更多详细信息。

【讨论】:

    猜你喜欢
    • 2019-04-12
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多