3

我正在使用以下代码:

<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 的焦点?

关于在调用 a 时如何将焦点带回此 javascript 代码的任何想法parent.document

我正在使用ie6。

4

2 回答 2

1

此代码更改应该有效。你需要给 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>
于 2010-06-30T01:58:40.757 回答
0

你试过用'top'代替'parent'吗?

top.document.getElementById("iframe1").src = dashboard.url;

http://www.w3schools.com/jsref/prop_win_top.asp

这样你就有了绝对的参考,而不必担心它实际上在哪个窗口中。

于 2010-06-30T02:00:27.990 回答