为什么在某些页面上没有在Safari中加载iFrame?

时间:2016-04-19 19:32:46

标签: html ios macos iframe safari

我们在其中一个内部网页上遇到了一个问题,即iFrame没有加载head或html代码。

此问题仅发生在Safari(El Capitan,Yosemite和iPhone)中,并且只发生在一个特定页面上。检查html时我们可以看到iframe代码,但是当我们扩展#document部分时,html标记是空的。

在控制台中没有出现错误。我们唯一注意到的是,加载的数据明显减少,呼叫次数减少了15次。

有人可以告诉我们什么可能导致iframe无法正确加载吗?这似乎是一个计时的事情,因为我们可以使用javascript在文档准备就绪之后将iframe标记插入到空div中然后它可以工作。

谢谢!

编辑: 示例iFrame代码:

<iframe allowfullscreen="true" src="https://www.youtube.com/embed/[YOUTUBEID]?rel=0&wmode=opaque" frameborder="0"></iframe>

2 个答案:

答案 0 :(得分:0)

我知道这个问题已经过时,但您是否尝试添加setTimeout来附加iframe代码或添加onload事件?

setTimeout(function() {
    div.innerHTML = '<iframe allowfullscreen="true" src="https://www.youtube.com/embed/[YOUTUBEID]?rel=0&wmode=opaque" frameborder="0"></iframe>';

    div.querySelector("iframe").addEventListener("load", function() {
      console.warn("Video loaded");
      div.querySelector("iframe").focus();
    });
}, 100);

答案 1 :(得分:-2)

是父域http:// ???我有一个类似的问题,我在iFrame内部有一个https网址,但父网站使用的是非安全的http协议。尝试更改src =“https://www.youtube.com/embed to src =”http://www.youtube.com/embed 你有同样的问题吗?