2015-05-03 78 views
1

如何延迟加载iFrame?内嵌框架(在页面底部)是:DOM准备好后加载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”中,并加载到的iframe id为#iframe_id DOM就绪后

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

"Uncaught ReferenceError: $ is not defined"

在我想的那一刻(窗口).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> 
+0

'$'未定义 - 不包含jQuery参考。 –

+0

谢谢。根据:http://stackoverflow.com/questions/2194992/jquery-is-not-defined该错误只能由以下三件事之一引起: (1)您的JavaScript文件未正确加载到您的页面 (2)你有一个僵化的jQuery版本。这可能是因为某人编辑了核心文件,或者一个插件可能覆盖了$变量。 (3)在页面完全加载之前,您的JavaScript正在运行,因此,在jQuery完全加载之前.---也许jQuery滑块正在使用$ – headNumber2

回答

0

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

+0

谢谢Jason!将脚本移动到身体的底部工作!我以前肯定尝试过,但是你不能与结果争辩,DOM在半秒钟内加载,而不是几秒钟!再次感谢杰森。希望有些人可以upvote您的答复,因为我的代表不会允许它。我现在只需要解决由于jQuery滑块导致的不可见iframe问题:不同的问题,虽然:http://stackoverflow.com/questions/30009667/jquery-slider-hiding-iframe-script-priority-conflict – headNumber2