JavaScript重新加载功能无法正常工作
在我的网页上,我有一段JavaScript,每三秒重新加载/刷新一个iframeJavaScript重新加载功能无法正常工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,在我的网页上,我有一段JavaScript,每三秒重新加载/刷新一个iframe window.setInterval(function() { reloadIFrame() }, 3000); function reloadIFrame() { var frame = document.getElementById("iframe"); var len = frame.getElementsByTagName("TABLE").length; if
window.setInterval(function() {
reloadIFrame()
}, 3000);
function reloadIFrame() {
var frame = document.getElementById("iframe");
var len = frame.getElementsByTagName("TABLE").length;
if ( len == 0 ){
console.log('reloading..');
document.getElementById('iframe').contentWindow.location.reload();
}
}
但是,我不希望该函数在iframe中存在一个表时工作,并且它在有表时仍然运行。请让我知道,如果有什么我错过或您的建议替代解决方案
(我确实相信我引用的iframe是localhost:8000上本地的。如果有必要,我正在与Django合作,这是模板的一部分。)对于任何有类似问题的人: 正如charlietfl对原始帖子的评论一样,
contentWindow
没有被引用。我下面修改的代码现在可以工作了:
window.setInterval(function() {
reloadIFrame()
}, 3000);
function reloadIFrame() {
var frame = document.getElementById("iframe");
var len = frame.contentWindow.document.getElementsByTagName("TABLE").length;
if ( len == 0 ){
console.log('reloading..');
document.getElementById('iframe').contentWindow.location.reload();
}
}
我只需要在
frame
之后添加contentWindow.document
,就可以解决类似问题:
正如charlietfl对原始帖子的评论一样,contentWindow
没有被引用。我下面修改的代码现在可以工作了:
window.setInterval(function() {
reloadIFrame()
}, 3000);
function reloadIFrame() {
var frame = document.getElementById("iframe");
var len = frame.contentWindow.document.getElementsByTagName("TABLE").length;
if ( len == 0 ){
console.log('reloading..');
document.getElementById('iframe').contentWindow.location.reload();
}
}
我只需要在
frame
之后添加contentWindow.document
Bhojendra Nepal,如果可以的话,你能帮我理解为什么这样做吗?你不是在iframe窗口内寻找table@charlietfl非常感谢。你能告诉我我需要换什么东西才能看到窗户里面吗?(对不起,我是JavaScript新手,主要只使用Python,所以这对我来说有点陌生)请确保iframe位于同一个域上,否则您无法访问其内部内容。@Reflective,谢谢!对我来说,情况似乎不是这样的,如果可以的话,你能帮我理解为什么会这样吗?你没有在iframe窗口内寻找table@charlietfl非常感谢。你能告诉我我需要换什么东西才能看到窗户里面吗?(对不起,我是JavaScript新手,主要只使用Python,所以这对我来说有点陌生)请确保iframe位于同一个域上,否则您无法访问其内部内容。@Reflective,谢谢!对我来说,情况似乎并非如此,尽管如果不遵循并正确设置同一来源策略,您可能会收到保护错误。如果不遵循并正确设置同一来源策略,您可能会收到保护错误