从辅助 window 调用 Flex 应用公开的 JS 方法

Invoking a JS method exposed by Flex app from a secondary window

我目前正在开发一个用 Flex(基本上是 Flash)制作的旧应用程序,它仍然需要在 IE11 中运行(我知道……我知道)。这个 webapp(我们称它为 A)公开了一个可从 JavaScript 调用的方法。 A 还有一个打开新浏览器的按钮 window(称之为 B)。 B 在 "beforeunload" 事件上有一个侦听器:当用户要关闭 B 时,B 必须调用 A 中的 JS 方法。希望我解释正确。使用 Google Chrome 和参数“--disable-web-security”,执行 A 中定义的方法,我们对此很满意。我们正在使用以下指令:

window.opener.document.getElementById('flashAppID').methodName();

我们面临的问题是,当B试图执行A中的JS方法时,IE11抛出以下异常:

   {
      [functions]: ,
      __proto__: {
         [functions]: ,
         __proto__: {
            [functions]: ,
            __proto__: null
         },
         message: "",
         name: "Error"
      },
      description: "Authorization denied",
      message: "Authorization denied",
      name: "Error",
      number: -2146828218,
      stack: "Error: Authorization denied
   at callOpener (http://domainname.ext/pageB.html:18:21)"
   }

我们试图禁用 IE 中任何可能的安全限制,但没有成功;有人对如何避免该异常有任何建议吗?

提前致谢。

问题是由以前的开发人员出于未知原因编写的以下作业引起的:

document.domain = "domainname.ext";

评论该行后,一切开始按预期工作。因此,如果有人遇到相同或相似的问题,请确保不要覆盖 document.domain 属性.