1

iframe我有以下 JavaScript每 5 秒旋转标签中的页面。

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 ...)

4

3 回答 3

2

我建议你elmnt.src = pages[i]改用。

如果它仍然给您错误,那么很可能您正在尝试定位没有src属性的元素。检查elemt.tagName给你IFRAME

于 2013-03-22T16:26:09.633 回答
1

您是否尝试过手动设置 iframe 的 src 属性?

document.getElementById('dashboard').src = pages[i];
于 2013-03-22T15:41:42.820 回答
1

正如你现在所拥有的,每次setPage被调用时,i值为undefined; 如果您希望i从调用到调用的值保持不变,则需要将其设置在闭包中:

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++;
    }
}());

同样在设置间隔时,第一个参数应该只是函数的名称,没有引号或括号:

setInterval(setPage, 5000);

您可以对其进行一些其他调整,但这应该可以使其运行。

于 2013-03-22T16:00:56.403 回答