Задержка загрузки iframe?
Я знаю, что есть некоторые инструменты и методы для задержки загрузки javascript, но у меня есть iframe, который я хотел бы отложить загрузку до тех пор, пока остальная часть страницы не закончит загрузку и рендеринг (iframe находится в скрытом, который не будет обнаружен, пока кто-то не нажмет на определенную вкладку на странице. Есть ли способ отложить загрузку iframe? Любые предложения будут высоко оценены. Спасибо!
8 ответов
С jquery это легко!
либо заключите свой код, который загружает iframe в $()
или использовать $(document).ready(function(){})
они оба одинаковы и будут выполнять ваш код после того, как DOM будет готов!
например
$(document).ready(function(){
$('iframe#iframe_id').attr('src', 'iframe_url');
});
на http://www.learningjquery.com/2006/09/introducing-document-ready
Не знаю, нужно ли запускать без javascript. Но лучший метод-изменить src сразу после iframe:
<iframe id="myIframe" src="http://.." />
<script type="text/javascript">
var iframe = document.getElementById('myIframe').src = iframe.src;
iframe.src = '';
document.onload = function(){iframe.src = src;}
</script>
использование $(document).ready начнет рендеринг вашего Iframe сразу после сборки дерева DOM, но до загрузки всего содержимого на вашей стороне, поэтому я думаю, что это не то, что вы хотите.
в jQuery есть событие .load, который совпадает с onload (после загрузки всех ресурсов)
$(window).load(function(){ iframe.src = src; }
используйте Javascript в событии onLoad или в обработчике нажатия кнопки, чтобы установить атрибут src iframe.
вы также можете применить display: none к iframe с CSS, а затем использовать jQuery .показать так:
$(document).ready(function(){
$('iframe.class_goes_here').show();
});
это работает для меня, но есть проблемы при изменении кода:
function loadIFrame() {
window.frames['BodyFrame'].document.location.href = "iframe.html";
}
function delayedLoad() {
window.setTimeout(loadIFrame2, 5000);
}
использование:
<iframe src="" onLoad="delayedLoad()"></iframe>
вы можете использовать атрибут отсрочки, когда нужно загрузить последний раз после css, js и т. д.:
iframe defer src="//player.vimeo.com/video/89455262"
или мое любимое использование
setTimeout('your app', 6000)
Это заставит его ждать x миллисекунд для вызова любой функции....
загрузить iFrame после загрузки страницы С в jQuery и немного html и js
// Javascript
$(window).bind("load", function() {
$('#dna_video').prepend('<iframe src="//player.vimeo.com/video/86554151" width="680" height="383" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>');
});
<!-- Append JQuery-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- HTML -->
<div id="dna_video"></div>