JavaScript 프레임워크 사용
창 개체에 대해 이야기할 때 프레임 내의 웹 페이지도 창 개체, 즉 프레임 개체도 창 개체라고 언급했습니다. 가장 간단한 용어로, 각 HTML 파일은 프레임("프레임 페이지")을 정의하는 웹 페이지를 포함하여 창 개체를 차지합니다. IE에서는 "
window.frameName을 사용하여 지정된 창 개체가 프레임 웹 페이지이기도 하면 해당 프레임을 참조하는 방법은 window.frameName.subFrameName입니다. 등.
"창" 개체가 참조되는 위치에 관계없이 "현재" 창 개체가 반환된다는 점에 유의해야 합니다. 다른 창 객체에 접근하려면 parent 및 top 속성을 사용해야 합니다. parent는 현재 창 개체를 포함하는 프레임 웹 페이지인 "부모" 창 개체를 나타냅니다. top은 창 상단에 있는 창 개체를 나타냅니다.
프레임워크를 사용할 때 JavaScript에 정의된 전역 변수와 맞춤 함수에도 세심한 주의를 기울이세요. 그들은 모두 자신만의 창 개체를 가지고 있습니다. 다른 프레임워크에서 전역 변수나 사용자 정의 함수를 참조하려면 "Window object.Frame object [.Frame object...].Global 변수 또는 사용자 정의 함수"라는 귀찮은 방법을 사용해야 합니다.
위의 문제는 연결을 설정할 때 종종 무시됩니다. 기본 대상 창(
프레임 프로그래밍 개요
HTML 페이지에는
1. 상위 프레임에서 하위 프레임으로 참조
위의 원리를 알면 상위 프레임에서 하위 프레임을 참조하는 것이 매우 쉬워집니다. 즉, 2. 하위 프레임에서 상위 프레임으로의 참조
각 창 객체에는 상위 프레임을 나타내는 상위 속성이 있습니다. 프레임이 이미 최상위 프레임인 경우 window.parent는 프레임 자체도 나타냅니다.
3. 형제 프레임 간 참조
두 프레임이 동일한 프레임의 하위 프레임인 경우 형제 프레임이라고 하며 상위 프레임을 통해 서로 참조할 수 있습니다. 예를 들어 페이지에는 2개의 하위 프레임이 포함됩니다.
프레임의 로딩 페이지 변경
프레임에 대한 참조는 창 개체에 대한 참조입니다. 창 개체의 위치 속성을 사용하면 프레임의 탐색을 변경할 수 있습니다.
다른 프레임의 JavaScript 변수 및 함수 참조
다른 프레임의 JavaScript 변수 및 함수 참조 기술을 소개하기 전에 다음 코드를 살펴보겠습니다.
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 속성을 사용하여 프레임의 페이지를 변경하는 등 페이지를 쉽게 조작할 수 있습니다.
다음은 서로 다른 수준의 프레임 간 상호 참조를 소개합니다.
window.frames["frameName"];
이러한 방식으로 페이지에서 이름이 FrameName인 하위 프레임이 참조됩니다. 서브프레임 내에서 서브프레임을 참조하려는 경우 창 객체의 특성에 따라 참조된 프레임을 다음과 같이 구현할 수 있습니다.
window.frames["frameName"].frames["frameName2"];
이런 방식으로 참조됩니다. 두 번째 수준 하위 프레임 등의 경우 다층 프레임워크의 참조가 달성될 수 있습니다.
frame1에서 다음 명령문을 사용하여 프레임2를 참조할 수 있습니다.
self.parent.frames["frame2"];
4. 서로 다른 수준의 프레임워크 간 상호 참조
프레임워크의 수준은 최상위 프레임워크에 대한 것입니다. 레벨이 다른 경우 현재 있는 레벨과 다른 프레임의 레벨 및 이름을 알고 있는 한 프레임에서 참조하는 창 개체의 속성을 사용하여 서로 쉽게 액세스할 수 있습니다. 예를 들면 다음과 같습니다.
self.parent.frames["childName "].frames["targetFrameName"];
5. 최상위 프레임
에 대한 참조는 상위 속성과 유사합니다. 창 개체에도 top 속성이 있습니다. 이는 프레임 자체가 최상위 프레임인지 여부를 결정하는 데 사용할 수 있는 최상위 프레임에 대한 참조를 나타냅니다. 예:
//이 프레임이 최상위 프레임인지 여부를 판단합니다.
if (self==top){
/ /dosomething
}
window.frames[0].location="1.html";
이렇게 하면 첫 번째 프레임의 페이지가 리디렉션됩니다. 1.html 페이지에서 이 속성을 사용하면 하나의 링크를 사용하여 여러 프레임을 업데이트할 수도 있습니다.
이 코드를 실행하면 "hello, ajax"가 나타납니다. up !" 창은 정확히 hello() 함수를 실행한 결과입니다. 그렇다면 왜 hello()가 window 객체의 메서드가 되었습니까? 페이지 내에 정의된 모든 전역 변수와 전역 함수는 창 개체의 구성원이기 때문입니다. 예를 들어
var a=1;
alert(window.a);
는 1을 표시하는 대화 상자를 표시합니다. 창 개체를 통해 호출하여 서로 다른 프레임워크 간에 변수와 함수를 공유하는 경우에도 동일한 원칙이 적용됩니다.
예를 들어, 제품 검색 페이지는 두 개의 하위 프레임으로 구성됩니다. 왼쪽은 사용자가 카테고리 링크를 클릭하면 오른쪽에 해당 제품 목록이 표시됩니다. 상품 옆의 [구매] 링크를 클릭하세요. 장바구니에 상품을 추가하세요.
이 예에서는 왼쪽 탐색 페이지를 사용하여 사용자가 구매하려는 제품을 저장할 수 있습니다. 사용자가 탐색 링크를 클릭하면 다른 페이지, 즉 제품 표시 페이지만 변경되고 탐색 페이지 자체는 그대로 유지되기 때문입니다. 변경되지 않았으므로 그 안에 있는 JavaScript 변수는 손실되지 않으며 전역 데이터를 저장하는 데 사용할 수 있습니다. 구현 원리는 다음과 같습니다.
왼쪽 페이지가 link.html이고 오른쪽 페이지가 show.html이라고 가정합니다. 페이지 구조는 다음과 같습니다.