1

iframeタグ内のページを 5 秒ごとに回転させる次の JavaScript があります。

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に、値iundefined; の値を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 に答える