페이스 북, 트위터 등에서 src와 iframe (크로스 도메인)을 가지고 있습니다. iframe의 높이를 알아야하지만 문제가 발생했습니다 : "속성 '문서'에 액세스 할 수있는 권한이 거부되었습니다." 이 문제를 해결하도록 도와주세요. 많은 감사합니다!iframe 크로스 도메인의 높이를 얻는 방법
6
A
답변
6
몇 가지 문제가 있습니다. 첫째, iframe
의 높이가 원하는 것과 다를 가능성이 있습니다. 즉, 사용자가 제어하는 페이지의 HTML 코드에 명시 적으로 설정되어 있으며 자바 스크립트를 통해 쉽게 액세스하고 수정할 수 있다는 의미입니다. 너가 후에 보는 무엇이 안쪽에 안쪽에 페이지의 고도이다. 그렇다면 간단한 답은 페이스 북/트위터 같은 외부 서비스가 아니라는 것입니다.
두 가지 문서의 자바 스크립트 에 통신 경로가 내장되어 있지 않으면 보안상의 이유로 인해 부모님과 자녀가 아닌 메시지를 전달할 수 있습니다. 최신 브라우저에서 이것을 처리하기위한 프로토콜은 postMessage
입니다. https://developer.mozilla.org/en/DOM/window.postMessage. 하지만이 경우에는 의사 소통중인 문서가 들어오는 postMessage를 처리하도록 설정되어 있지 않으면이 경우 전혀 쓸모가 없습니다. 트위터/페이스 북은 자주 알지 못합니다.
부모 문서가 다른 도메인의 어린이와 자유롭게 통신 할 수있는 경우 자바 스크립트는 로그인 한 모든 사이트에서 일련의 명령을 효과적으로 실행할 수 있습니다. 그것의 보안 함의는 무섭고 다행히도 가능하지 않습니다.
1
크로스 도메인 iframe 높이의 높이를 찾으려면 자바 스크립트에서 옵션이 없지만 일부 서버 측 프로그래밍의 도움을 받아 이와 같은 작업을 수행 할 수 있습니다. 이 예제에서는 PHP를 사용했습니다.
<?php
$output = file_get_contents('http://yourdomain.com');
?>
<div id='iframediv'>
<?php echo $output; ?>
</div>
<iframe style='display:none' id='iframe' src="http://yourdomain.com" width="100%" marginwidth="0" height="100%" marginheight="0" align="top" scrolling="auto" frameborder="0" hspace="0" vspace="0"> </iframe>
<script>
if(window.attachEvent) {
window.attachEvent('onload', iframeResizer);
} else {
if(window.onload) {
var curronload = window.onload;
var newonload = function(evt) {
curronload(evt);
iframeResizer(evt);
};
window.onload = newonload;
} else {
window.onload = iframeResizer;
}
}
function iframeResizer(){
var result = document.getElementById("iframediv").offsetHeight;
document.getElementById("iframe").style.height = result;
document.getElementById("iframediv").style.display = 'none';
document.getElementById("iframe").style.display = 'inline';
}
</script>
관련 문제
- 1. Firefox에서 Iframe 높이를 얻는 방법
- 2. 다른 브라우저에서 올바른 높이를 표시하도록 iFrame을 얻는 방법
- 3. 콘텐츠에서 IFrame 높이를 조정하는 방법
- 4. iframe 높이를 jQuery로 제어하십시오.
- 5. 비 로컬 도메인의 iFrame scrollTop
- 6. 동일한 도메인의 iframe 콘텐츠에 액세스
- 7. 다른 도메인의 iframe 완성 URL 얻기
- 8. 크로스 도메인 iframe 처리
- 9. 픽셀 너비와 높이를 얻는 방법?
- 10. 캔버스의 너비/높이를 얻는 방법?
- 11. CSS 동일한 높이를 얻는 방법?
- 12. Jquery에서 테이블 높이를 얻는 방법
- 13. 스팬의 줄 높이를 얻는 방법?
- 14. PDFsharp에서 테이블 높이를 얻는 방법?
- 15. Silverlight에서 이미지 높이를 얻는 방법?
- 16. 가로로 가능한 높이를 얻는 방법?
- 17. UITableViewCell의 전체 높이를 얻는 방법?
- 18. 크로스 브라우저 iframe 높이 계산
- 19. iframe의 특정 지점과 iframe 문서의 상단 사이의 높이를 찾는 방법
- 20. 사용자 도메인의 만료 날짜를 얻는 방법
- 21. 내용에 따라 iframe 높이를 조정하십시오.
- 22. jQuery 크로스 도메인 iframe 스크립팅
- 23. 상위 도메인의 iframe 요소를 iframe 간 도메인의 하위 문서에서 가져 오는 방법은 무엇입니까?
- 24. 자동 높이를 사용하여 레이블의 실제 높이를 얻는 방법
- 25. Ajax Json 크로스 도메인의 전화 번호
- 26. 동일한 도메인의 기본 창 setTimeoutID에 액세스 iFrame
- 27. 다른 도메인의 페이지가 포함 된 iframe 스크롤
- 28. 동일한 도메인의 iframe 내에 양식 재설정
- 29. 다른 도메인의 iframe 내용에 JavaScript가 실행 중임
- 30. Monotouch를 사용하여 행 높이를 얻는 방법?