我有以下JavaScript来每隔5秒在iframe
标记中旋转页面。
function setPage() {
if (i == pages.length) {
i = 0;
}
alert(pages[i]); //verify the right url is there
var elmnt = document.getElementById('dashboard');
elmnt.setAttribute('src', pages[i]);
i++;
}
setInterval("setPage()", 5000);
循环,间隔等正在运行。但是,src
标记的iframe
属性没有任何变化。
我测试了IE8和Chrome。
我做错了什么?我怎样才能做到这一点(没有jQuery ......)
答案 0 :(得分:1)
您是否尝试过手动设置iframe的src属性?
document.getElementById('dashboard').src = pages[i];
答案 1 :(得分:1)
现在,每次调用setPage
时,值i
为undefined
;如果您希望通过来电与i
保持价值,则需要在closure中进行设置:
var setPage = (function () {
var i = 0;
return function () {
if (i == pages.length) {
i = 0;
}
var elmnt = document.getElementById('dashboard');
elmnt.setAttribute('src', pages[i]);
i++;
}
}());
同样在设置间隔时,第一个参数应该只是函数的名称,没有引号或parens:
setInterval(setPage, 5000);
你可以对它做一些其他调整,但这应该让它运行。
答案 2 :(得分:1)
我建议你改用elmnt.src = pages[i]
。
如果它仍然给你错误,那么很可能你正在尝试定位没有src
属性的元素。检查elemt.tagName
是否为您提供了IFRAME
。