Změna window.location.href ve Firefoxu v reakci na událost onunload

Mám zvláštní problém s JavaScriptem pomocí window.location.href , což se zjevně týká pouze Firefoxu (používám 3.6).

Obvykle window.location.href nebude pouze pro čtení a ve Firefoxu to funguje perfektně:

window.location.href = "http://google.com/";

Když však zavolám funkci jako odpověď na onunload událost (<body onunload="testThis();"> ), toto nefunguje podle očekávání:

function testThis() {
    alert ("1: " + window.location.href);
    window.location.href = "http://google.com/";
    alert ("2: " + window.location.href);
    return false;
}

V obou případech výstraha zobrazuje aktuální umístění stránky ve Firefoxu, aniž by byla provedena změna. Neexistují žádné chyby JavaScriptu a onunload událost úspěšně volá funkci, takže se zdá, že problém spočívá v úpravě nebo nahrazení hodnoty window.location.href .

Zkoušel jsem použít window.location , document.location.href , dokonce se pokusil změnit window.location.search . Je možné, že událost, konkrétně onunload událost způsobí window.location.href stát se pouze pro čtení?

Odpověď

Ano, chcete-li zabránit tomu, aby škodlivé webové stránky blokovaly uživatele v odchodu.