【问题标题】:iOS: inserting iFrame with SRC inside the page immediately opens the url in SafariiOS:在页面内插入带有 SRC 的 iFrame 会立即在 Safari 中打开 url
【发布时间】:2020-12-29 19:32:33
【问题描述】:

我有一个很奇怪的问题。这发生在 Cordova(混合 HTML)应用程序中,但仅在 iOS 上。

我的 HTML 页面已经有一些内容,没关系。 稍后,我正在从远程页面检索一些 HTML,并将此 HTML 插入到我的主 HTML 页面中。如果有一个指定了 SRC 属性的 iFrame,系统会立即在 safari/特定应用程序中打开该 SRC,但我只想将内容作为普通 iFrame 插入!

示例。如果我检索此 HTML:

<iframe src="https://www.youtube.com/watch?v=dQw4w9WgXcQ">

假设我将这个 HTML 元素保存在变量 foo 中。只要我这样做:

document.getElementById("XXX").appendChild(foo);

iOS 会立即打开 youtube 应用程序。没有用户交互,没有触发器,什么都没有。只需在页面中插入 iFrame。 任何其他指定的 SRC 都会发生同样的情况。

我尝试将“src”属性替换为假属性,例如“data-src”,在页面中插入 iFrame,然后再放回原始 SRC。一旦我这样做,同样的事情就会发生。

您对造成这种情况的原因以及如何实施解决方法有任何想法吗?在 Android 上一切正常。

P.S.:我正在使用 wkwebview,如果这很重要的话。

【问题讨论】:

    标签: javascript html ios cordova iframe


    【解决方案1】:

    我做到了!该死,如果这是一个愚蠢的错误! 在我的 config.xml 我忘了放这个

    <allow-navigation href="*" />
    

    这阻止了所有内容在我的 webview 中播放,作为备用选项,iOS 试图在另一个浏览器(例如 Safari)上打开 iframe URL。

    无论如何,谢谢埃里克!我想我浪费了 50 个赏金点 :(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多