CRM Dynamics 2015 IFrame通讯

问题描述:

我有一个网络资源,我打电话给一个对话框。CRM Dynamics 2015 IFrame通讯

看来,在CRM动态的最近更新,他们现在覆盖window.frames对象,我用它来获取所有iframe的列表之前。

这里是帧的在控制台中查看对象..

enter image description here

有谁知道我如何才能访问页面上可用I帧?

上的代码,用于工作...

var found = false; 
$.each(parent.window.frames, function (i, val) { 
     if (!found) { 
      if (parent.window.frames[i].Xrm.Page.data != null) { 
       console.log("got here, page data not null"); 
       found = true; 
      } 
     } 
    }); 

版本动力学:7.0.2.53

+0

你确定你真的想这样做吗?它不受支持。什么是最终目标? –

+0

目的是从原始iframe访问表单上的数据。 – TWilly

您可以尝试使用下面的代码来获取所有的IFrame控件:

var iframeControlArray = Xrm.Page.getControl(function (control, index) { 
    return control.getControlType() == "iframe"; 
}); 

然后访问IFrame DOM对象:

var iframeDomObject = iframeControlArray[0].getObject(); 
var iframeDocument = iframeDomObject.contentDocument 
     || iframeDomObject.contentWindow.document; 

如果在另一个域中的IFrame资源并且您有完全访问权限,则最好使用window.postMessage()进行“跨域的IFrame通信”。 更多在这里: