최근 여러 프로젝트에서 iframe이 사용되었습니다. 한 페이지에 여러 iframe이 있고 여러 iframe이 서로의 기능이나 상위 창의 기능에 액세스해야 하는 경우가 있습니다. 오늘은 시간이 나면 페이지 프레임 프로그래밍을 정리하겠습니다.
페이지의 모든 프레임은 컬렉션 형태로 창 개체의 속성으로 제공됩니다. 예: window.frames는 페이지의 모든 프레임 모음을 나타내며 양식 개체, 링크 개체, 그림과 유사합니다. 객체 등. 차이점은 이러한 컬렉션이 문서의 속성이라는 것입니다. 따라서 서브프레임을 참조하려면 다음 구문을 사용할 수 있습니다.
window.frames["frameName"];
window.frames.frameName
window.frames[index]
그 중에서 window라는 단어도 가능합니다. self로 바꾸거나 생략하고, 프레임 이름이 페이지의 첫 번째 프레임이라고 가정하면 다음 쓰기는 동일합니다.
self.frames["frameName"]
self.frames[0]
frames[0]
frameName
각 프레임은 HTML 페이지에 해당하므로 이 프레임은 창의 모든 속성을 갖는 독립적인 브라우저 창이기도 합니다. 프레임에 대한 참조도 창 개체에 대한 참조입니다. 이 창 개체를 사용하면 window.document 개체를 사용하여 페이지에 데이터를 쓰거나 window.location 속성을 사용하여 프레임의 페이지를 변경하는 등 페이지를 쉽게 조작할 수 있습니다.
다음은 다양한 수준의 프레임워크 간의 상호 참조를 소개합니다.
1. 상위 프레임에서 하위 프레임으로 참조 위의 원칙을 알면 상위 프레임에서 하위 프레임을 참조하는 것이 매우 쉽습니다. 즉,
window.frames["frameName"]
이는 페이지 내에서 frameName이라는 참조 A 서브프레임입니다. 하위 프레임 내의 하위 프레임을 참조하려는 경우 창 개체의 특성에 따라 참조된 프레임을 다음과 같이 구현할 수 있습니다.
window.frames["frameName"].frames["frameName2"]; >참조 방법은 다음과 같습니다. 2차 하위 프레임워크 등의 경우 다층 프레임워크의 참조가 가능합니다.
2. 하위 프레임에서 상위 프레임으로의 참조
각 창 객체에는 상위 프레임을 나타내는 상위 속성이 있습니다. 프레임이 이미 최상위 프레임인 경우 window.parent는 프레임 자체도 나타냅니다.
3. 형제 프레임 간 참조
두 프레임이 동일한 프레임의 하위 프레임인 경우 형제 프레임이라고 하며 상위 프레임을 통해 서로 참조할 수 있습니다. 예를 들어 페이지에는 2개의 하위 프레임이 포함됩니다. >
< /frameset>
frame1에서 다음 명령문을 사용하여 프레임2를 참조할 수 있습니다.
self.parent.frames["frame2"]
4. 서로 다른 레벨의 프레임워크 간 상호 참조
프레임워크 레벨은 최상위 프레임워크에 대한 것입니다. 레벨이 다른 경우 현재 있는 레벨과 다른 프레임의 레벨 및 이름을 알고 있는 한 프레임에서 참조하는 창 개체의 속성을 사용하여 서로 쉽게 액세스할 수 있습니다. 예를 들면 다음과 같습니다.
self.parent.frames["childName "].frames["targetFrameName"]
5. 최상위 프레임
에 대한 참조는 상위 속성과 유사합니다. 창 개체에도 top 속성이 있습니다. 이는 프레임 자체가 최상위 프레임인지 여부를 결정하는 데 사용할 수 있는 최상위 프레임에 대한 참조를 나타냅니다. 예:
//이 프레임이 최상위 프레임인지 판단합니다.if(self==top){
//dosomething
}