Domanda

Ho il seguente codice che sto giocando con:

<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>

In sostanza è una routine per scorrere URL in una matrice in un iframe. Il mio problema si verifica quando ho creato parent.document.getElementById("iframe1").src a un URL; funziona per la prima, ma non sembra per passare a quello successivo.

Tuttavia, se creo un iframe nello stesso contesto di questa javascript, dire iframe2 e invece basta usare:

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

senza la chiamata parent.document, tutto funziona bene.

E 'di perdere il focus del javascript quando ho emettere la chiamata parent.document?

Tutte le idee su come riportare attenzione a questo codice javascript quando si chiama un parent.document?

Sto usando IE6.

È stato utile?

Soluzione

Questa modifica del codice dovrebbe funzionare. È necessario dare un nome iframe e in secondo luogo, non ho testarlo in IE6, ma funziona in 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>

Altri suggerimenti

Hai provato a usare 'top' invece di 'genitori'?

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

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

In questo modo si ha un riferimento assoluto e non devono preoccuparsi di quale finestra in realtà è in.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top