【发布时间】:2014-09-12 05:10:17
【问题描述】:
我有一个包含两个网站的 Web 应用程序 - 一个在端口 8080 (Java) 上运行,另一个在端口 80 (IIS) 上运行。 Java 网页调用 IIS 网页,IIS 网页偶尔会回调 Java 网页以获取附加信息。处理数据通信/交换的 JavaScript适用于 IE,但不适用于 Firefox。
Page 1 (IIS) > onClick of Button > Page 2 (Java/Tomcat) > User closes popup > Data transfer to Page 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");,则会收到关于
Error: Permission denied for "http://localhost" to get property Window.addEventListener from "http://localhost:8080".
b) 在 Firefox 中,如果我没有打开警报,则不会显示错误消息,但看起来它首先是 Focus_onuloadExitEvent,然后是 Focus_onfocusEvent,所有这些都在打开弹出窗口的过程中。关闭弹出窗口不会触发Focus_onunloadExitEvent。
我如何确保代码在 Firefox 和 IE 中都能正常运行 - 即。我希望onfocusEvent 在弹出焦点时触发,onunloadEvent 在弹出窗口卸载时触发。
【问题讨论】:
标签: javascript firefox