window.opener在IE中未定义,但不是Chrome,FF



我打开一个新页面,在IE(使用ie 11(窗口中,opener是未定义的。window.open返回的窗口引用也充满了未定义或空Object

我新打开的页面需要从主页获取Xrm对象,因为我无法以其他方式获取它,需要它来完成我的所有功能。 法典:

function openCountyTab() {
countyTabRef = window.open("countyTab", "countyTab");
return false;
}

在新选项卡的js文件中,我有var opener; window.onload = function() { ... opener = window.opener; ...}

我已经尝试了很多事情,包括将其发送到完整的 url、使用 Blob 并从中创建 url(返回拒绝访问(,我还需要提到,在发送window.open("fullDomainName")时,我得到的Object充满了<Access Denied>标签。

编辑:我会更清楚地说明我的问题。我需要打开一个位于同一域中的新 HTML 页面,它需要传递Xrm对象或从打开它的窗口中获取它。现在,需要Xrm对象,因为我在此新打开的页面上运行的脚本中使用它。具体来说,我正在使用的名为XrmServiceToolKit的库需要它。

我使用它来检索和修改Microsoft CRM平台上服务器上的数据。我对这样做没有任何问题,因为一切都在Chrome,FF上运行良好。问题是XrmServiceToolKit无法获取context,即Xrm对象,因为它nullundefined在页面上。因此,我无法运行我的脚本,因为它取决于此。因此,我需要一种方法在IE11中打开一个新页面(而不是替换当前窗口(并为其提供此Xrm对象。

希望这能解决它。

任何帮助将不胜感激!

MDwindow.openerN 中的浏览器兼容性表仅列出 Chrome、Firefox 和 Android Webview 支持此变量,所有其他浏览器都是未知的,显然不兼容。

因此,您不应该在需要移植到所有浏览器的应用程序中依赖它。

如果您需要在一个窗口和它打开的另一个窗口之间进行通信,请查看 postMessage 机制。

最新更新