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 をクリックしたことを示す信頼できる指標ではありません (別のウィンドウに切り替えた場合はどうなるでしょうか?)。

要するに、あなたがやろうとしていることは、セキュリティとプライバシーに関係する正当な理由から、Web スクリプトのアーキテクチャに反しているため、確実に行うことはできません。

于 2012-08-13T18:45:23.070 に答える