代码之家  ›  专栏  ›  技术社区  ›  user1595962

javascript在OPERA中不起作用

  •  0
  • user1595962  · 技术社区  · 12 年前

    这个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>
    
    2 回复  |  直到 12 年前
        1
  •  0
  •   wanovak    12 年前

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

    type="text/javascript"
    
        2
  •  0
  •   hallvors    12 年前

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

    简言之:你试图做的是违背网络脚本的体系结构,因为这与安全和隐私有关,因此你无法可靠地做到这一点。