> 웹 프론트엔드 > JS 튜토리얼 > javascript 상위 및 하위 페이지 상호 작용 기술 요약_javascript 기술

javascript 상위 및 하위 페이지 상호 작용 기술 요약_javascript 기술

WBOY
풀어 주다: 2016-05-16 16:40:04
원래의
1197명이 탐색했습니다.

Frame은 iframe 또는 프레임셋일 수 있는 하위 페이지를 저장하는 데 사용됩니다. 창 개체는 전역 개체이며 페이지의 모든 기능과 개체는 해당 범위 내에 있습니다.
1. 상위는 상위 창을 나타냅니다. 상위 창에 여러 수준의 중첩이 있는 경우 top은 최상위 상위 창을 나타냅니다.
self는 창 자체를 나타냅니다.

if(self==top){//}判断窗口是否处于顶级 
if(self==parent){}//也可以
로그인 후 복사

2.1. 상위 페이지는 하위 페이지 요소에 액세스합니다. 하위 페이지의 요소는 모두 window.document 개체에 포함되어 있어 먼저 가져와서 이에 대해 이야기하기가 쉽습니다.
가장 편리한 작업은 프레임의 이름 속성을 설정하는 것이 가장 좋습니다.

<iframe name="test" src="child.html"></iframe>
로그인 후 복사

child.html에서 ID가 'menu'인 요소를 가져오려면 다음과 같이 작성할 수 있습니다.

window.frames["test"].document.getElementById('menu'); 
//由于所有的函数都存放在window对象里面,可去掉开头的window: 
frames["test"].document.getElementById('menu'); 
//在浏览器中,帧的name属性被默认等同于子页面的window对象,因此可以进一步简写: 
test.document.getElementById('menu');
로그인 후 복사

2.2 상위 페이지는 하위 페이지 기능이나 개체에 액세스합니다. 서브페이지의 기능과 개체는 모두 해당 창 개체에 있습니다. 핵심은 개체를 얻는 것입니다.

//假如child.html定义了showMesg函数,需要在父中调用,则这样写 
window.frames['test'].showMesg(); 
//简写形式 
test.showMesg(); 
//同理,对象也是如此访问 
alert(test.person);
로그인 후 복사

2.3 문서를 얻는 다른 방법.
먼저 'document.getElementById()' 또는 'document.getElementsByTagName()'을 사용하여 프레임을 문서 아래의 요소로 가져온 다음 해당 속성 contentDocument/contentWindow(iframe 및 프레임에만 해당)에 액세스합니다. 첫 번째는 지원되지 않습니다. by ie7-. 두 번째 크롬은 지원되지 않습니다.

<iframe id="testId" src="child.html"></iframe> 
//====== 
var doc=document.getElementById('testId'); 
//或者 
var doc=document.getElementsByTagName('iframe')[0]; 
然后 
var winOrdoc=doc.contentDocument||doc.contentWindow;//二选一 
if(winOrdoc.document)winOrdoc=winOrdoc.document; 
winOrdoc.getElementById('menu'); 
//如果需要window对象,则这样写: 
if(winOrdoc.defaultView)winOrdoc=winOrdoc.defaultView;
로그인 후 복사

3.1 하위 페이지는 상위 페이지 요소에 액세스합니다. 아이디어는 2.1과 동일합니다. 먼저 상위 창 window.document 개체
를 가져옵니다.

parent.window.document.getElementById('parentMenu'); 
//简写 
parent.document.getElementById('parentMenu');
로그인 후 복사

3.2, 하위 페이지는 상위 페이지 기능이나 객체에 접근합니다. 아이디어는 2.2와 동일합니다. 먼저 상위 창 창 개체를 가져옵니다.

parent.parentFunction();
로그인 후 복사

마지막으로 js의 동일 출처 정책에 대해 언급하겠습니다. 즉, 웹사이트 A에 있는 js 코드는 코드가 웹사이트 B에서 시작되더라도 웹사이트 B에 있는 콘텐츠에 액세스할 수 없습니다. 프레임이 다른 웹사이트의 페이지인 경우 위 방법에 따라 서로 액세스할 때 브라우저에 '권한 없음' 오류 메시지가 표시되어야 합니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿