Maison >interface Web >js tutoriel >js pour empêcher les pages Web d'être imbriquées par des cadres iframe et les différences entre plusieurs location.hrefs

js pour empêcher les pages Web d'être imbriquées par des cadres iframe et les différences entre plusieurs location.hrefs

高洛峰
高洛峰original
2017-01-12 10:58:341600parcourir

Tout d'abord, comprenons les différences et les liens entre window.location.href, location.href, self.location.href, parent.location.href et top.location.href En termes simples : plusieurs location.href. La différence est que js implémente la fonction iframe de la page Web
"window.location.href", "location.href", "self.location.href" est le saut vers cette page
"parent.location .href" est le saut de page d'un niveau ci-dessus
"top.location.href" est le saut de page le plus à l'extérieur

Par exemple (comme indiqué ci-dessus) :
Si A, B, C, et D sont tous C'est une page ordinaire, D est l'iframe de C, C est l'iframe de B, et B est l'iframe de A.
Si le js dans D s'écrit comme ceci :
"fenêtre .location.href", "location.href": D Saut de page
"parent.location.href": C Saut de page
"top.location.href": Un saut de page

Si il y a un formulaire dans la page D :
ff9c23ada1bcecdd1a0fb5d5a0f18437 : la page D saute après la soumission du formulaire
78b0d948ae627160bc4929f3a3f3d83b : une nouvelle page apparaît après la soumission du formulaire
b871a3f0962c693cfc4d01f7ce2e377b : C après la soumission du formulaire Saut de page
cc081d24aa3ae9245f597eac35a8f260 : Une fois le formulaire soumis, la page A saute

Concernant rafraîchissement de la page, ce qui suit est écrit sur la page D :
"parent.location.reload( );": rafraîchissement de la page C (bien sûr, vous pouvez également utiliser l'objet opener de la fenêtre enfant pour obtenir l'objet du parent window: window.opener.document.location.reload(); )
"top.location.reload(); " : Un rafraîchissement de page

Avec le recul, il est très simple d'implémenter la fonction d'empêcher les pages Web d'être encadrées par des iframes dans js. En supposant que le fichier content.html soit encadré dans le fichier frame.html, l'idée est la suivante : ajoutez js à content.html pour détecter sa propre adresse top.location.href et s'il s'agit de l'adresse top.location.href. Si tel est le cas, il n'est pas imbriqué. Si ce n'est pas le cas, il est imbriqué.

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

Pour plus d'implémentation de js pour empêcher les pages Web d'être imbriquées par des cadres iframe et les différences entre plusieurs articles liés à location.href, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn