setAttribute('src','page.html')不起作用

时间:2013-03-22 15:39:04

标签: javascript

我有以下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 ......)

3 个答案:

答案 0 :(得分:1)

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

document.getElementById('dashboard').src = pages[i];

答案 1 :(得分:1)

现在,每次调用setPage时,值iundefined;如果您希望通过来电与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