[英]using javascript setTimeout to see if div has loaded
我正在使用动态脚本标签和 JSON 加载远程数据。 我在我的网站上显示的远程页面中有一个 div,我用来加载内容。
问题是 javascript 函数在页面加载时看不到div
,因为它是远程数据。 如果我将超时设置为大约 300,它通常可以工作并且我的 javascript 可以看到div
。 但有时它需要更长的时间并且会破坏 javascript。
我正在尝试这个:
function load_content() {
if (document.getElementById('remote_div') == null) {
setTimeout('load_content()', 300);
} else {
document.getElementById('remote_div').innerHTML = 'Content goes here'
}
}
但它不起作用。 我究竟做错了什么?
您可能希望使用 setInterval 来执行此操作。 就像是:
var intrval = setInterval( function(){
if(document.getElementById('remote_div')) {
load_content();
clearInterval(intrval);
}, 50);
function load_content() {
//loading content here
}
这样您就不必估计加载时间。 load_content 在 DOM 树中可以找到 div#remote_div 时执行。
根据评论编辑,忘记分配间隔,所以它确实永远不会清除。
你在使用 iframe 吗?
如果是这样,请尝试
document.getElementById('YOUR_IFRAME_ID').contentWindow.document.getElementById('remote_div')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.