2012-08-13 9 views
0

이 javascript는 Firefox, IE, Chrome에서는 작동하지만 Opera에서는 작동하지 않습니다. 브라우저 간 호환 가능하게 만드는 방법은 무엇입니까? iframe을 클릭하면 스크립트가 감지됩니다.javascript가 OPERA에서 작동하지 않습니다.

<script> 
var isOverIFrame = false; 
function processMouseOut() { 
isOverIFrame = false; 
top.focus(); 
} 
function processMouseOver() { isOverIFrame = true; } 
function processIFrameClick() { 
if(isOverIFrame) { 
//was clicked 
} 
} 

function init() { 
var element = document.getElementsByTagName("iframe"); 
for (var i=0; i<element.length; i++) { 
    element[i].onmouseover = processMouseOver; 
    element[i].onmouseout = processMouseOut; 
} 
if (typeof window.attachEvent != 'undefined') { 
    top.attachEvent('onblur', processIFrameClick); 
} 
else if (typeof window.addEventListener != 'undefined') { 
    top.addEventListener('blur', processIFrameClick, false); 
} 
} 
</script> 

<iframe src="http://google.com"></iframe> 

<script>init();</script> 
+0

사용중인 오페라 버전은 무엇입니까? 당신이 연구 한 오페라 문서가 있습니까? –

답변

0

를 추가해보십시오 당신의 script 태그에 다음

type="text/javascript" 
+0

고마워요! – user1595962

0

이 할 수있는 이상한 물건의 종류입니다 - 자바 스크립트가에서 IFRAME에 사용자가 무엇을 감지하지 못할 수 있어야 다른 도메인. "흐림"이벤트는 사용자가 IFRAME을 클릭 한 신뢰할 수있는 표시기가 아닙니다 (방금 다른 창으로 전환 한 경우 어떻게됩니까?).

간단히 말해서 : 보안 및 개인 정보 보호와 관련이있는 충분한 이유 때문에 웹 스크립팅 아키텍처에 위배됩니다. 그러므로 신뢰할 수 없게됩니다.

관련 문제