DOM 准备好后加载 iframe。准备好文件

Posted

技术标签:

【中文标题】DOM 准备好后加载 iframe。准备好文件【英文标题】:load iframe after DOM ready. document ready 【发布时间】:2015-07-12 16:00:36 【问题描述】:

如何延迟 iFrame 的加载? iFrame(在页面底部)是:

A) 减慢网站加载时间 B) 与滑块冲突(请参阅我的另一个问题:滑块)

要延迟 iframe 加载,直到 DOM 准备好我正在尝试:

<iframe id="iframe_id" src="http://sourcewebsite.com" style="width:100%;height:700px;border:0px;background-color:;" frameborder="0" allowtransparency="true"></iframe>


<script type='text/javascript'> $(document).ready(function() $('iframe#iframe_id').attr('src', 'http://sourcewebsite.com'); ); </script>

我假设这需要 http://sourcewebsite.com 并将其传递给 'src' 并将其加载到 ID 为 #iframe_id 的 iframe 在 DOM 准备好之后

但是 chrome 开发者控制台告诉我:

“未捕获的引用错误:$ 未定义”

.

目前我正在考虑 (window).load 我是一个更好的方法,因为它会在滑块之后加载 iframe.. 例如:

<iframe id="iframe_id" src="http://sourcewebsite.com"..........></iframe>

$(window).load(function()  $('iframe#iframe_id').attr('src', 'http://sourcewebsite.com'); );

但我不确定这是否语法正确(尤其是脚本中的 url 和 iframe#iframe 而不仅仅是#iframe)如果有任何错误,请随时告诉我!从事情的进展来看,我确信有!

感谢您的任何提示!

编辑 - 回复:脚本:

!-- JAVASCRIPT FILES PLACED AT THE BOTTOM TO REDUCE THE LOADING TIME -->
<!-- CORE JQUERY -->
<script src="assets/js/jquery-1.11.1.js"></script>
<!-- BOOTSTRAP SCRIPTS -->
<script src="assets/js/bootstrap.js"></script>
<!-- EASING SCROLL SCRIPTS PLUGIN 
<script src="assets/js/vegas/jquery.vegas.min.js"></script>
<!-- VEGAS SLIDESHOW SCRIPTS -->
<script src="assets/js/jquery.easing.min.js"></script>
<!-- FANCYBOX PLUGIN -->
<script src="assets/js/source/jquery.fancybox.js"></script>
<!-- ISOTOPE SCRIPTS -->
<script src="assets/js/jquery.isotope.js"></script>
<!-- VIEWPORT ANIMATION SCRIPTS   -->
<script src="assets/js/appear.min.js"></script>
<script src="assets/js/animations.min.js"></script>
<!-- CUSTOM SCRIPTS -->
<script src="assets/js/custom.js"></script>

【问题讨论】:

$ 未定义 - 不包括 jQuery 参考。 谢谢。根据:***.com/questions/2194992/jquery-is-not-defined 该错误只能由以下三种情况之一引起:(1)您的 JavaScript 文件未正确加载到您的页面中(2)您的 jQuery 版本不完善。这可能是因为有人编辑了核心文件,或者插件可能覆盖了 $ 变量。 (3) 您在页面完全加载之前运行了 JavaScript,因此,在 jQuery 完全加载之前。--- 也许 jquery 滑块正在使用 $ 【参考方案1】:

代码&lt;script type='text/javascript'&gt; $(document).ready(function() $('iframe#iframe_id').attr('src', 'http://sourcewebsite.com'); ); &lt;/script&gt;直接引用了jQuery$对象,(它会在DOM准备好后执行回调)。如果此代码出现在您的 &lt;script src="assets/js/jquery-1.11.1.js"&gt;&lt;/script&gt; 之前,那么它将在不知道 $ 是什么的情况下执行,您应该将其移至您对 jQuery 的引用下方。

【讨论】:

谢谢杰森!将脚本移动到正文的底部有效!我之前肯定尝试过,但你不能与结果争论,DOM 在半秒内加载,而不是几秒!再次感谢杰森。希望有些人可以支持您的回复,因为我的代表不允许。我现在只需要解决由于 jquery 滑块导致的不可见 iframe 的问题:但不同的问题:***.com/questions/30009667/…

以上是关于DOM 准备好后加载 iframe。准备好文件的主要内容,如果未能解决你的问题,请参考以下文章

javascript 关闭和DOM准备好了

JavaScript 在dom准备好了

AJAX 加载的 DOM 节点何时“准备好”?

延迟后加载 iFrame 的源

Python Selenium 2 API 并等待 DOM 准备好/元素可见

在主体树中执行脚本时 DOM 准备好了吗?