【问题标题】:webViewDidFinishLoad self-invoking?webViewDidFinishLoad 自调用?
【发布时间】:2012-08-20 20:29:36
【问题描述】:

我正在开发一个 iPhone 应用程序。这是我第一次使用 XCode 和 Objective-C,尽管我有很多 PHP、JS 和 Java 经验。我现在遇到了一个问题。

webViewDidFinishLoad 函数被调用时,我将 JavaScript 注入 UIWebView。该 JavaScript 包括将 iFrame 注入正文,这就是我的问题所在。似乎注入的 iFrame 再次调用了webViewDidFinishLoad 函数,导致无限循环。

这是一个常见问题吗? 谢谢你! 雅克

【问题讨论】:

    标签: javascript iphone html ios uiwebview


    【解决方案1】:

    hacky 方法是在你的类中添加一个 BOOL 来检查它是否是 webview 的第一次加载完成。

    另一种可能性是在第一次加载完成后将 Web 视图委托设置为 nil。

    【讨论】:

    • 这是否会禁用 webViewDidFinishLoad 函数再次运行,因为我希望在单击链接以转到另一个页面时再次触发它。它不应仅在加载 iframe 时触发。谢谢你的时间。
    • 我会尝试这样做:让 iframe 仅在 url 更改时插入
    【解决方案2】:

    我建议您更改您的 javascript 注入代码 - 为您的 iframe 分配一个 id,然后在将其注入页面之前,检查以确保该 id 不存在。这样,即使webViewDidFinishLoad 被调用了两次,框架也只会在第一次被注入。

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      相关资源
      最近更新 更多