Javascript код теряет Фокус - PullRequest
3 голосов
/ 30 июня 2010

У меня есть следующий код, с которым я играю:

<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;он работает для первого, но, кажется, не переходит к следующему.

Однако, если я создаю iframe в том же контексте этого javascript, произнесите iframe2 и вместо этого просто используйте:

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

без вызова parent.document, все работает нормально.

Не теряет ли я фокуса JavaScript, когда я выполняю вызов parent.document?

Есть идеи о том, какВерните фокус на этот код JavaScript при вызове parent.document?

Я использую ie6.

Ответы [ 2 ]

1 голос
/ 30 июня 2010

Это изменение кода должно работать.Вам нужно дать имя 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>
0 голосов
/ 30 июня 2010

Вы пытались использовать "top" вместо "parent"?

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

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

Таким образом, у вас есть абсолютная ссылка, и вам не нужно беспокоиться о том, какиеокно это на самом деле в.

...