我们在其中一个内部网页上遇到了一个问题,即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>
答案 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 你有同样的问题吗?