一千萬個為什麽

搜索

Javascript代碼失去焦點

我有以下代碼,我正在玩:

<script type="text/javascript">

var Dash = {
    nextIndex: 0,
    dashboards: [
        {url: 'http://www.google.com', time: 5},
        {url: 'http://www.yahoo.com', time: 10}
    ],

    display: function()
    {
        var dashboard = Dash.dashboards[Dash.nextIndex];
        parent.document.getElementById("iframe1").src = dashboard.url;
        Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length;
        setTimeout(Dash.display, dashboard.time * 1000);
    }
};

window.onload = Dash.display;

</script>

基本上,將數組中的URL循環到iframe是一個例程。當我將 parent.document.getElementById(“iframe1”)。src 設置為url時出現問題;它適用於第一個但它似乎沒有循環到下一個。

但是,如果我在此javascript的相同上下文中創建iframe,請說iframe2,而只是使用:

        document.getElementById("iframe2").src = dashboard.url;

沒有 parent.document 調用,一切正常。

當我發出 parent.document 時,它是否會失去javascript的焦點?

關於如何在調用 parent.document 時將焦點重新帶回此javascript代碼的任何想法?

我正在使用ie6。

最佳答案

此代碼更改應該有效。你需要給iframe一個名字,其次,我沒有在IE6中測試它,但在IE7中工作。

<script type="text/javascript">

var Dash = {
    nextIndex: 0,
    dashboards: [
    {url: 'http://www.rediff.com', time: 5},
    {url: 'http://www.google.com', time: 10}
    ],

    display: function()
    {
    var dashboard = Dash.dashboards[Dash.nextIndex];
    parent.frames["fname"].location.href = dashboard.url;
        window.focus();
    Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length;
    setTimeout(Dash.display, dashboard.time * 1000);
    }
};

window.onload = Dash.display;

</script>

轉載註明原文: Javascript代碼失去焦點