Das Dilemma, mit dem ich es zu tun habe, ist das in der jquery -bbq code , da IE6 und IE7 hashchange
nicht unterstützen, laden sie Seiten zweimal, um einen Verlaufsstatus zu haben.
Dies hat einen negativen Effekt, da der Code sowohl serverseitig als auch clientseitig zweimal ausgeführt wird. Die Methode, die zum Erstellen des Iframes verwendet wird, lautet wie folgt:
%Vor% Ein leerer iframe mit einem Quellcode von javascript:0
wird erstellt. Die document.open
-Methode wird aufgerufen, und es scheint, als ob sie die location.href
des übergeordneten Fensters als Standard für die Seite nimmt, die mit .open
geöffnet wird.
Ich muss den Code im Grunde so ändern, dass er nicht zweimal dieselbe URL öffnet. Daher möchte ich den Standard überschreiben und einen Parameter wie "iframe = true" angeben.
Beispiel:
In IE wird die obige Seite geladen und dann erneut in einen iframe geladen. Der serverseitige Code wird zweimal ausgeführt , aber das soll nicht passieren.
Ich möchte &iframe=1
an den URI anhängen, damit ich verhindern kann, dass mein serverseitiger Code ausgeführt wird, wenn der Parameter iframe
angegeben ist.
Die zwei offensichtlichsten Dinge sind:
document.open.close
zu verwenden, verwenden Sie iframe.location.href
und setzen Sie sie manuell auf die href. Wenn jemand Erfahrung mit Iframe-Hacking hatte, würde ich mich sehr über einige Tipps freuen.
BEARBEITEN Eine andere Problemumgehung, an die ich gedacht habe, wäre das Laden einer Seite über iframe / ajax, die eine Sitzungsvariable vor dem iframe setzt, macht document.open
, wodurch eine Sitzungsvariable von 'iframe loading' erstellt wird ist gleich 1 und setzt einen load event handler auf iframe load, um ihn auf 0 zurückzusetzen und meinen serverseitigen Code so anzupassen, dass er nicht ausgeführt wird, wenn die Session-Variable auf 1 gesetzt ist. Etwas wie:
Info "Gibt es eine Standardmethode zum Definieren der href, die in einem document.open-Aufruf geöffnet wird?"
Nein, gibt es nicht.
Tags und Links jquery internet-explorer-7 internet-explorer-6 jquery-bbq