2012-08-13 85 views
0

這在Firefox,IE,Chrome,但不是在Opera JavaScript的工作。如何使它跨瀏覽器兼容? 我需要腳本來檢測點擊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

您正在使用哪個版本的Opera?有沒有你研究過的歌劇文獻? – 2012-08-13 16:55:29

回答

0

嘗試添加以下到您的script標籤:

type="text/javascript" 
+0

感謝它的工作! – user1595962 2012-08-13 16:56:59

0

這是那種奇怪的事情 - 你的JavaScript不應該能夠檢測用戶所做的一個IFRAME從不同的域。 「模糊」事件不是用戶在IFRAME中單擊的可靠指示器(如果她只是切換到另一個窗口,該怎麼辦?)。

簡而言之:你正在試圖做的是對網頁腳本的架構,適用於具有安全性和隱私做的很好的理由,因此你不能這樣做可靠。

相關問題