현재 위치 - 회사기업대전 - 기업 정보 조회 - JavaScript 는 도메인 간에 iframe 의 컨텐츠를 가져오는 방법은 무엇입니까?

JavaScript 는 도메인 간에 iframe 의 컨텐츠를 가져오는 방법은 무엇입니까?

이 문제를 설명하기 위해서는 먼저 두 가지 기술적 포인트를 설명해야 한다.

각 "창" 은 JS 런타임, 즉 JS 런타임입니다. 창이 하나만 있는 경우 런타임이 하나만 있습니다. 을 눌러 섹션을 인쇄할 수도 있습니다 창 아래에 iframe 이 있으면 두 개의 런타임이 있습니다. 을 눌러 섹션을 인쇄할 수도 있습니다 이런 것들이죠.

도메인 간 런타임 간 상호 운용성 (또는 통신) 은 제한적입니다. 즉, 이 창 자체가 a.baidu.com 도메인 이름 아래의 페이지인 경우, 이 페이지 아래에 iframe 이 있으면 이 iframe 에 로드된 페이지는 b.baidu.com 도메인 이름 아래의 페이지입니다. 그래서 밖에 있는 JS 입니다. 이 iframe 의 컨텐츠와 상호 운용하거나 통신할 수 없습니다.

따라서 외부 런타임 시 JS 가 내부 iframe 의 컨텐츠를 조작하려면 도메인 간 제한을 피해야 합니다. 내부 iframe 로드 페이지의 도메인 이름이 외부와 동일할 수도 있습니다. 또는 내부 iframe 로드 페이지에서 document.domain =' Baidu.com' 을 실행해야 합니다. 을 눌러 외부 레이어의 마스터 도메인과 동일하게 설정합니다.

예를 들어, 현재 페이지는 a.baidu.com/test.html.

& lthtml & gt

& lthead & gt

& lt/head & gt;;

& ltbody & gt

& lt iframeid = "ifrm1"src = "0c893329b8c9af6 ff578db9b1a1288 채우기: 0px 색상: RGB (69,69,69); 서체 시리즈: 아리엘, 아리엘, Sans-arial, 타호마,' 마이크로소프트 야블랙'; Font-size:14px; 글꼴 스타일: 보통; 글꼴-변형-대문자: 일반; 글꼴 두께: 보통; 문자 간격: 일반; 고아: 자동차 텍스트 정렬: 시작; 텍스트 들여쓰기: 0px 텍스트 변환: 없음; 공백: 일반; 과부: 차 자간: 0px-WebKit-tap-highlight-color: rgba (26,26,26,0.30196/kloc- -WebKit-text-size-adjust: auto; -WebKit-text-stroke-width: 0px; ">

Iframe 에 로드된 페이지 내용은 다음과 같습니다.

& lthtml & gt

& lthead & gt

& lt/head & gt;;

& ltbody & gt

& ltdiv id = "innerDiv"> 내부 iframe 의 요소 조작을 축하합니다! ! ! & lt/div & gt;;

& lt 스크립트 & gt

Document.domain =' Baidu.com';

& lt/스크립트 >

& lt/body & gt;;

& lt/html & gt;;

HTML5 에 postMessage 용 API 가 추가되었습니다. 창과 내부 iframe 간의 통신을 용이하게 하고 도메인 간 통신을 가능하게 합니다. 하지만 몇 가지 제한 사항이 있습니다. 일반 1 의 오래된 브라우저는 지원하지 않습니다. 2. 상위 창은 iframe 에만 정보를 보낼 수 있고, iframe 은 메시지만 받을 수 있으며, 상위 창은 iframe 의 내용을 직접 조작할 수 없습니다. 3. 상위 창에서 보낸 데이터도 제한적입니다. 기본 데이터 유형이나 일반 객체만 보낼 수 있습니다.

copyright 2024회사기업대전