繁体   English   中英

window.opener在ie中未定义,但在chrome中未定义,ff

[英]window.opener is undefined in ie but not chrome, ff

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

我新打开的页面需要从主页获取Xrm对象,因为否则我将无法获取它,并且需要它来执行我的所有功能。 码:

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

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

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

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

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

希望这可以清除它。

任何帮助是极大的赞赏!

MDN for window.opener浏览器兼容性”表仅列出支持此变量的Chrome,Firefox和Android Webview,所有其他浏览器都是未知的,并且显然不兼容。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM