0

此 javascript 适用于 Firefox、IE、Chrome,但不适用于 Opera。如何使其跨浏览器兼容?我需要脚本来检测 iframe 上的点击。

<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>
4

2 回答 2

0

尝试将以下内容添加到您的script标签中:

type="text/javascript"
于 2012-08-13T16:53:29.683 回答
0

这是一件很奇怪的事情——你的 JavaScript 不应该能够检测到用户在不同域的 IFRAME 中所做的事情。“模糊”事件不是用户在 IFRAME 中单击的可靠指标(如果她只是切换到另一个窗口怎么办?)。

简而言之:你试图做的是反对网络脚本的架构,因为与安全和隐私有关的充分理由,因此你不能可靠地做到这一点。

于 2012-08-13T18:45:23.070 回答