我打开一个新页面,并在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")
{{1 }}我回来的是Object
标签。
编辑:我将更清楚地说明我的问题。我需要打开一个位于同一域中的新HTML页面,它需要通过<Access Denied>
对象或从打开它的窗口中获取。现在,Xrm
对象是必需的,因为我在新打开的页面上运行的脚本中使用了它。具体来说,我正在使用的名为Xrm
的lib需要它。
我使用它来检索和修改Microsoft CRM平台上服务器上的数据。我做任何事情都没有问题,因为在FF,Chrome上一切正常。问题是XrmServiceToolKit
无法获得XrmServiceToolKit
即context
对象,因为它是页面上的Xrm
或null
。因此,我不能运行我的脚本,因为它依赖于此。因此,我需要一种方法来在IE11中打开一个新页面(而不是替换当前窗口),并为其提供此undefined
对象。
希望可以清除它。
非常感谢您的帮助!
答案 0 :(得分:0)
MDN中window.opener
的{{3}}表仅列出支持此变量的Chrome,Firefox和Android Webview,所有其他浏览器都是未知的,并且显然不兼容。
因此,您不应在需要可移植到所有浏览器的应用程序中依赖它。
如果需要在一个窗口和另一个窗口之间进行通信,请查看Browser Compatibility机制。