교차 도메인 iframe의 DOM 콘텐츠 가져 오기
이 질문에 이미 답변이 있습니다.
- 교차 도메인 iframe 문제 4 답변
교차 도메인 사이트 용 iframe이 있습니다. 검사기를 사용하면 iframe의 DOM을 수정할 수도 있기 때문에 가능하다고 생각했던 iframe의 DOM을 읽고 싶습니다. 그러나 나는 그것을 읽으려고 할 때마다 동일한 출처 정책을 실행합니다. 내가 원하는 것은 iframe에서 내 로컬 DOM에로드 된 콘텐츠입니다. 나는 그것이 간단하다고 생각 $(document.body).find('iframe').html()
했지만 빈 문자열을 반환합니다.
지난 며칠 동안했던 작업이 이것이 가능하다는 것을 전제로했기 때문에 이것을 할 수있는 방법이 정말로 있기를 바랍니다.
감사
당신은 할 수 없습니다. XSS 보호 . 크로스 사이트 내용은 자바 스크립트로 읽을 수 없습니다. 어떤 주요 브라우저도이를 허용하지 않습니다. 미안하지만 이것은 디자인 결함입니다. 아이디어를 포기해야합니다.
편집하다
iframe에로드 된 웹 사이트에 대한 수정 권한이있는 경우 postMessage 를 사용할 수 있습니다 ( 브라우저 호환성 참조 ).
간단한 방법이 있습니다.
" http://your-domain.com/index.php?url=http://the-site-you-want-to-get.com/unicorn 과 같은 소스 용 iframe을 만듭니다.
그런 다음 $ _GET으로이 URL을 얻고 file_get_contents ($ _ GET [ 'url']);로 내용을 표시합니다.
귀하의 도메인과 동일한 도메인을 가진 iframe을 얻은 다음 $ ( "iframe"). contents (). find ( "body")를 사용하여 콘텐츠를 조작 할 수 있습니다.
iframed 페이지에 액세스 할 수있는 경우 easyXDM 과 같은 것을 사용 하여 iframe에서 함수를 호출하고 데이터를 반환 할 수 있습니다.
iframed 페이지에 액세스 할 수없는 경우 서버 측 솔루션을 사용해야합니다. PHP를 사용하면 다음과 같이 빠르고 더러운 일을 할 수 있습니다.
<?php echo file_get_contents('http://url_of_the_iframe/content.php'); ?>
로드 된 도메인 / iframe에 대한 액세스 권한이있는 경우 window.postMessage를 사용하여 iframe과 기본 창간에 통신 할 수 있습니다.
iframe에서 JavaScript로 DOM을 읽고 postMessage를 통해 상단 창으로 보냅니다.
자세한 정보 : https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
이를 달성하기위한 해결 방법이 있습니다.
먼저 상대 URL을 사용하여 iframe을 대상 페이지에 바인딩합니다. 브라우저는 iframe의 사이트를 웹 사이트와 동일한 도메인으로 취급합니다.
웹 서버에서 재 작성 모듈을 사용하여 상대 URL의 요청을 절대 URL로 리디렉션합니다. IIS를 사용하는 경우 IIRF 모듈 을 확인하는 것이 좋습니다 .
참고 URL : https://stackoverflow.com/questions/6170925/get-dom-content-of-cross-domain-iframe
'Development Tip' 카테고리의 다른 글
bin과 gac 모두에있는 DLL, 어느 것이 사용됩니까? (0) | 2020.11.08 |
---|---|
그렇다면“from __future__ import barry_as_FLUFL”은 정확히 무엇을합니까? (0) | 2020.11.08 |
clang ++ -stdlib = libc ++와 함께 libstdc ++ 컴파일 된 라이브러리 사용 (0) | 2020.11.08 |
Lists.newArrayList 대 새 ArrayList (0) | 2020.11.07 |
자동 레이아웃 (제약 조건) 상위보기에서 나란히보기 2 개 중앙 (0) | 2020.11.07 |