我正在使用下面的代码延迟加载一个 div,直到加载整个网页。它在 Firefox 和 Safari 中完美运行(因为它们在代码中都有行以确保它专门针对每个,我还没有测试过 IE),但在 Chrome 中却不行(我认为它应该与 一起使用window.onload
).
有人可以帮我解决这个问题吗?
<script type="text/javascript">
function insertFB(){
var html='<div class="fb-page" data-href="https://www.facebook.com/bobcaputolivingwell" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true" data-show-posts="true"><div class="fb-xfbml-parse-ignore"><blockquote cite="https://www.facebook.com/bobcaputolivingwell"><a href="https://www.facebook.com/bobcaputolivingwell">Bob Caputo Living Well</a></blockquote></div></div>';
$("#FB_PAGE").html(html);
}
if (document.addEventListener){
document.addEventListener("DOMContentLoaded", insertFB, false);
}
if (/WebKit/i.test(navigator.userAgent)){
var _timer = setinterval(function(){
if(/loaded|complete/.test(document.readyState)){
insertFB();
}
},10);
}
window.onload = insertFB();
</script>
最佳答案
好吧,首先我会具体回答你的问题:
它在 Google Chrome 中不起作用,因为您使用的是 setinterval
,而 Javascript 是一种区分大小写的语言。该方法的正确名称是 setInterval
。
除此之外,您的代码充满错误,您检查文档中的方法,并且不使用 else if
来检查其他方法,所以您总是检查所有,并且可能调用您想要的方法两次或更多次。
另一件事是你正在使用 setInterval
但你永远不会清除间隔,所以它会永远每 10 毫秒运行一次。
最后,当您尝试将它附加到 onload
事件时,您正在调用 insertFB
函数。你不应该为此使用括号。
看看Can I use addEventListener?在 Can I use DOMContentLoaded? , 你会看到所有主流浏览器都支持它,甚至一些旧浏览器,如果你真的需要支持 IE8(现在不太可能),你应该只使用另一种方式。
关于javascript - 使用 JQuery 延迟加载 div,代码在 Chrome 中不起作用(window.onload),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918562/