[英]CRM Dynamics 2015 IFrame Communication
我有一个在对话框内部调用的Web资源。
看来,在CRM Dynamics的最新更新中,它们现在正在覆盖window.frames对象,我以前曾使用该对象获取所有iframe的列表。
这是控制台中frames对象的视图。
有谁知道我如何访问页面上的可用iframe?
以前可以工作的代码...
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
您可以尝试使用以下代码获取所有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通信”。 有关此的更多信息:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.