2009-10-04 1 views
0

나는 close_window() 함수를 사용하여 버튼을 포함한 페이지 (A)를 가지고 있지만 iframe을 사용하여 내 메인 페이지 (B)에 A를 삽입하면 close_window()가 예상대로 작동하지 않습니다 더 이상 창이 없으므로 A가 다른 도메인에 있으므로 iframe에서 버튼을 제거 할 수 없습니다 (보안 문제 방지).HTML 외부에서 보이지 않고 벗기지 않는 iframe에 파트를 만드는 방법은 무엇입니까?

내가하고 싶은 것은이 버튼 라벨을 보이지 않게 만드는 것입니다. 그리고 내가 생각하는 유일한 방법은 외부에서 내 iframe에 해당 버튼이있는 곳에 흰색 이미지를 놓는 것입니다. 그게 가능한 Smthing입니까? 나는 심상이 iframe의 정상에 있고 싶다?

아니면 다른 생각이 있으십니까?

도움 주셔서 감사합니다.

답변

0

사실, 컨테이너 창에 의해 실행되는 JavaScript는 iframe >에있는 문서의 DOM을 조작 할 수 있습니다. 예를 들어이 페이지의 버튼을 클릭하면 문서의 <iframe>에 Google 검색 버튼이 표시되지 않습니다. JS가 신속하고 더러운 것을 참고, 나는 단지 사파리를 사용하여 테스트했습니다

컨테이너 HTML을 : 모두 인터넷 익스플로러와 파이어 폭스에서 작동하지

<html> 
    <head> 
     <title>Container</title> 
     <script type="text/javascript"> 
     onload = function() { 
      // Listen for a click on the 'remover' button. 
      var oRemover = document.getElementById('remover'); 
      oRemover.onclick = hideGoogleSearchButton; 
     } 
     var hideGoogleSearchButton = function() { 
      var oInnerDoc = document.getElementById('google_frame').contentDocument; 
      var aForms = oInnerDoc.getElementsByTagName('form'); 
      var oButton = aForms[0].elements['btnG']; 
      oButton.style.display = 'none'; 
     } 
     </script> 
    </head> 
    <body> 
     <button id="remover">Hide 'Google Search' button inside the iframe</button>: 
     <iframe src="http://www.google.com/" id="google_frame" /> 
    </body> 
</html> 
+0

흠. 이 모양은 Safari에서만 작동하며 교차 도메인 보안 버그로 간주 될 수 있습니다. –

0

. var에 aForms = oInnerDoc [이 오류에 브레이크] <http://www.google.com>. 익명() 새로운 % 20Te ... ment.html (라인 12) 에서 속성 HTMLDocument.getElementsByTagName를 얻을 수 <file://> 거부 ​​

권한 : 여기에 불을 지르고 오류입니다 .getElementsByTagName ('form'); \ r \ n

글쎄, 나는 그것이 동일한 이유 인 iframe 보안 문제라는 것을 알고있다. 그래서 나는 외부적인 방법이 필요합니다.

관련 문제