먼저 window.location.href, location.href, self.location.href, parent.location.href 및 top.location.href 간의 차이점과 연결을 이해해 보겠습니다. 간단히 말해서 여러 location.href입니다. 차이점은 js가 웹 페이지
"window.location.href", "location.href", "self.location.href"의 iframe 기능을 구현하면 이 페이지
"parent.location으로 이동한다는 것입니다. href"는 위의 한 수준 페이지 점프입니다.
"top.location.href"는 가장 바깥쪽 페이지 점프입니다.
예(위에 표시됨):
A, B, C 및 D는 모두 일반 페이지이고, D는 C의 iframe, C는 B의 iframe, B는 A의 iframe입니다.
D의 js를 다음과 같이 작성하면
"window. location.href", "location.href": D 페이지 점프
"parent.location.href": C 페이지 점프
"top.location.href": 페이지 점프
있는 경우 페이지 D의 양식입니다.
ff9c23ada1bcecdd1a0fb5d5a0f18437: 양식이 제출된 후 페이지 D가 점프합니다.
78b0d948ae627160bc4929f3a3f3d83b: 양식이 제출된 후 새 페이지가 나타납니다.
b871a3f0962c693cfc4d01f7ce2e377b: 양식 제출 후 C 페이지 점프
cc081d24aa3ae9245f597eac35a8f260 : 양식 제출 후 A 페이지가 점프합니다
페이지 관련 새로 고침을 수행하면 페이지 D에 다음이 기록됩니다.
"parent.location.reload( );": C 페이지 새로 고침(물론 하위 창의 오프너 개체를 사용하여 상위 창의 개체를 얻을 수도 있습니다. : window.opener.document.location.reload(); )
"top.location.reload(); ": 페이지 새로고침
지금 돌이켜보면 다음과 같은 기능을 구현하는 것은 매우 간단합니다. js의 iframe으로 웹페이지가 프레임화되는 것을 방지합니다. content.html 파일이 Frame.html 파일에 프레임으로 구성되어 있다고 가정하면 아이디어는 다음과 같습니다. content.html에 js를 추가하여 자신의 top.location.href 주소와 top.location.href 주소인지 여부를 감지합니다. 만약 그렇다면 중첩되지 않은 것입니다. 그렇지 않다면 중첩된 것입니다.
<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>
웹 페이지가 iframe 프레임에 의해 중첩되는 것을 방지하는 추가 js 구현과 여러 location.href 관련 기사 간의 차이점을 보려면 PHP 중국어 웹사이트에 주목하세요!