Heim  >  Artikel  >  Web-Frontend  >  js, um zu verhindern, dass Webseiten durch Iframe-Frames verschachtelt werden, und die Unterschiede zwischen mehreren location.hrefs

js, um zu verhindern, dass Webseiten durch Iframe-Frames verschachtelt werden, und die Unterschiede zwischen mehreren location.hrefs

高洛峰
高洛峰Original
2017-01-12 10:58:341542Durchsuche

Lassen Sie uns zunächst die Unterschiede und Zusammenhänge zwischen window.location.href, location.href, self.location.href, parent.location.href und top.location.href verstehen. Einfach ausgedrückt: mehrere location.href Der Unterschied besteht darin, dass js die Iframe-Funktion der Webseite implementiert
"window.location.href", "location.href", "self.location.href" ist der Sprung zu dieser Seite
"parent.location .href“ ist der obige einstufige Seitensprung
„top.location.href“ ist der äußerste Seitensprung

Zum Beispiel (wie oben gezeigt):
Wenn A, B, C, und D sind alle Es handelt sich um eine gewöhnliche Seite, D ist der Iframe von C, C ist der Iframe von B und B ist der Iframe von A.
Wenn das js in D so geschrieben ist:
"window .location.href", "location.href": D Seitensprung
"parent.location.href": C Seitensprung
"top.location.href": A Seitensprung

If Es gibt ein Formular auf Seite D:
ff9c23ada1bcecdd1a0fb5d5a0f18437: D-Seite springt, nachdem das Formular gesendet wurde
78b0d948ae627160bc4929f3a3f3d83b: Eine neue Seite wird angezeigt, nachdem das Formular gesendet wurde
b871a3f0962c693cfc4d01f7ce2e377b: C nach dem Absenden des Formulars Seitensprung


Betreff Seitenaktualisierung, auf Seite D steht Folgendes:
"parent.location.reload( );": C Seitenaktualisierung (natürlich können Sie auch das Opener-Objekt des untergeordneten Fensters verwenden, um das Objekt des übergeordneten Fensters abzurufen window: window.opener.document.location.reload(); )
"top.location.reload(); ": Eine Seitenaktualisierung

Rückblickend ist es sehr einfach, die js-Funktion zu implementieren um zu verhindern, dass Webseiten durch Iframes eingerahmt werden. Unter der Annahme, dass die Datei content.html in der Datei frame.html eingerahmt ist, lautet die Idee wie folgt: Fügen Sie js zu content.html hinzu, um die eigene top.location.href-Adresse zu erkennen und festzustellen, ob es sich um die top.location.href-Adresse handelt. Wenn ja, ist es nicht verschachtelt. Wenn nicht, können wir Ihnen einen Hinweis geben.

<script language="javascript"> 
if(top.location!==self.location){ 
WarningTxt1 = "content页面被iframe了!"; 
WarningTxt2 = "我们跳出iframe,直接访问content页面吧!"; 
alert(WarningTxt1); 
alert(WarningTxt2); 
top.location.href=self.location.href; 
} 
</script>

Weitere js-Implementierungen zur Verhinderung der Verschachtelung von Webseiten durch Iframe-Frames und die Unterschiede zwischen mehreren location.href-bezogenen Artikeln finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn