2010-12-03 4 views
2

Also, was ich will, ist, dies zu tun:Javascript: Wie man Ereignis von self.location Änderung erhält?

if (top != self) { 
    top.location = self.location; 
} 

auf self.location; Ändern Sie das Ereignis. (Es ist möglich, Jquery zu benutzen, wenn es wirklich gebraucht wird, aber ich würde es gerne nicht tun) Ist es möglich und wie man so etwas macht?

Hauptidee ist, alle Popup-Fenster oben zu halten. Und hier versuchen wir, den Fenstercode so zu ändern, dass er nach oben gelangt, wenn der Benutzer auf die Hauptseite klickt, um eine neue zu öffnen. Also werden wir das Ereignis self.location change abonnieren und zuhören. Ich frage mich, wie es geht?

Antwort

6

Versuchen Sie, "Frame Busting" zu machen? Oder möchten Sie wissen, wann sich top.location ändert? Wenn letzteres der Fall ist, nehme ich an, dass Änderungen am Hash-Tag-Wert der URL erkannt werden, da sonst eine Standortänderung eine neue Seite lädt, sodass Ihr JS niemals ausgeführt werden kann.

Wenn Sie Hash-Tag-Änderungsereignisse überprüfen möchten (dh Inhalt, der hinter dem # in einer URL steht), lesen Sie diese ähnliche Frage zu SO: On-Window-Location-Hash-Change.

Wenn es um Frame-Busting geht, gibt es viele gute verwandte Fragen zu SO wie Frame Buster Buster.

Sowie ein interessanter Blog-Beitrag auf Coding Horror.

1

Meinten Sie?

if (top.location != self.location) { top.location=self.location; } 
+0

ja aber ich muss es nicht nur einmal herausfinden. Ich muss irgendwie das Ereignis ändern. – Rella

+0

Kleben Sie einfach die oben in einem SetInterval –

+0

@ Box9 sieht aus wie ein schlechtes ideato mich - JS wird es nicht so reaktionsschnell sein, wie benötigt oder Willen lotof CPU – Rella

Verwandte Themen