반응형
메인 문서의 JavaScript에서 IFrame의 문서 가져 오기
이 HTML 코드가 있습니다.
<html>
<head>
<script type="text/javascript">
function GetDoc(x)
{
return x.document ||
x.contentDocument ||
x.contentWindow.document;
}
function DoStuff()
{
var fr = document.all["myframe"];
while(fr.ariaBusy) { }
var doc = GetDoc(fr);
if (doc == document)
alert("Bad");
else
alert("Good");
}
</script>
</head>
<body>
<iframe id="myframe" src="http://example.com" width="100%" height="100%" onload="DoStuff()"></iframe>
</body>
</html>
문제는 "나쁜"메시지가 표시된다는 것입니다. 즉, iframe의 문서가 올바르게 가져 오지 않았고 GetDoc 함수가 실제로 반환하는 것은 부모 문서입니다.
내가 어디에서 실수를했는지 알려 주시면 감사하겠습니다. (IFrame에서 호스팅되는 문서를 받고 싶습니다.)
감사합니다.
다음 코드를 사용하여 IFRAME의 문서에 액세스 할 수 있어야합니다.
document.getElementById('myframe').contentWindow.document
그러나 프레임의 페이지가 다른 도메인 (예 : google.com)에서로드 된 경우에는이 작업을 수행 할 수 없습니다. 이는 브라우저의 동일 출처 정책 때문입니다 .
문제는 IE (내가 테스트하고 있다고 생각하는)에서 <iframe>
요소 document
에 iframe이 포함 된 문서를 참조 하는 속성이 있으며 이는 contentDocument
또는 contentWindow.document
속성 보다 먼저 사용되고 있다는 것 입니다. 필요한 것은 :
function GetDoc(x) {
return x.contentDocument || x.contentWindow.document;
}
또한 document.all
모든 브라우저에서 사용할 수있는 것은 아니며 비표준입니다. document.getElementById()
대신 사용하십시오 .
참고 URL : https://stackoverflow.com/questions/3999101/get-iframes-document-from-javascript-in-main-document
반응형
'IT Share you' 카테고리의 다른 글
Python의 목록에서 일부 값의 첫 번째와 마지막 색인 찾기 (0) | 2020.12.14 |
---|---|
jQuery를 설치 하시겠습니까? (0) | 2020.12.14 |
ListBox의 맨 아래로 스크롤하는 방법은 무엇입니까? (0) | 2020.12.14 |
XSLT 1.0을 XSLT 2.0으로 업그레이드 (0) | 2020.12.14 |
내 앱이 언제 종료되었는지 어떻게 알 수 있습니까? (0) | 2020.12.14 |