javascript - Firefox AddEventListener 问题

标签 javascript firefox

我有一个包含两个网站的 Web 应用程序 - 一个在端口 8080 (Java) 上运行,另一个在端口 80 (IIS) 上运行。 Java 网页调用 IIS 网页,IIS 网页偶尔会回调 Java 网页以获取其他信息。处理数据通信/交换的 JavaScript 在 IE 中有效,但在 Firefox 中无效。

页面 1 (IIS) > onClick of Button > 页面 2 (Java/Tomcat) > 用户关闭弹出窗口 > 数据传输到页面 1

JavaScript:

if(window.attachEvent){//IE exclusive method for binding an event
    alert("AttachEvent");
    window.attachEvent("onfocus", Focus_onfocusEvent); 
    window.objExitPopupWindow.attachEvent("onunload", Focus_onunloadExitEvent);
} else if(window.addEventListener){//DOM method for binding an event. W3C standard          
    try{
        alert("Event Listener");
        window.addEventListener("focus", Focus_onfocusEvent, true);
        window.objExitPopupWindow.addEventListener("unload", Focus_onunloadExitEvent, true);
    } catch(err) {
            alert(err);
    }   
}   

我遇到的问题是:

a) 在 Firefox 中,如果我启用了 alert("Event Listener"); 那么我会得到一个关于 错误:“http://localhost”从“http://localhost:8080”获取属性 Window.addEventListener 的权限被拒绝

b) 在 Firefox 中,如果我没有打开警报,则不会显示任何错误消息,但看起来它首先显示 Focus_onuloadExitEvent 然后是 Focus_onfocusEvent,所有在打开弹出窗口的过程中。关闭弹出窗口不会触发 Focus_onunloadExitEvent

如何确保代码在 Firefox 和 IE 中都能正常运行 - 即。我希望 onfocusEvent 在弹出窗口焦点时触发,而 onunloadEvent 在弹出窗口卸载时触发。

最佳答案

这是 same origin policy .您不能让主机 A 上的文档加载 JavaScript 访问或修改从主机 B 加载的文档中的内容。因为您的主机之一是 localhost:80 而另一个是 localhost:8080,这些被浏览器认为是不同的主机。

在您的特定情况下,一种解决方案是将弹出页面与打开它的页面放在同一台服务器上,并在弹出页面内放置一个 iframe 指向另一台主机上的内容。这样,您的 JavaScript 就能够将事件监听器附加到弹出窗口本身。

关于javascript - Firefox AddEventListener 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1910043/

相关文章:

javascript - 点钞机可以在 Chrome、Safari (Windows)、Opera 和 IE 中运行,但不能在 Firefox 中运行。为什么?

javascript - 使用 JavaScript 切换/警告浏览器选项卡

python - Selenium webdriver 似乎无法与 Firefox 49.0 一起正常工作。我错过了什么吗?

javascript - 有什么方法可以通过 java native 模块(react native bridge)访问 Realm 实例(由 javascript 代码创建)?

javascript - Async/Await 在被调用函数完成之前返回未定义

javascript - 通过 javascript 和 ajax 填充 HTML 页面的最佳策略

css - 悬停时 Firefox 围绕框阴影绘制轮廓

animation - Firefox 中的蒙版故障内的 SVG 动画

javascript - 将文本字段的值作为搜索查询发送给谷歌

javascript - 在 onchange 事件之前触发 onblur 事件