无法使用Xrm.Page.getControl获取iframe

时间:2013-11-08 14:34:37

标签: javascript iframe crm xrm dynamics-crm-2013

从dynamics-crm 2011升级到dynamics-crm 2013后,我在尝试刷新iframe时遇到了一些问题。

以前和在sdk中微软必须得到一个控件/ iframe使用“Xrm.Page.getControl()”或其他帖子说使用“Xrm.page.ui.controls.get()”下面是错误我到了。enter image description here

我找到了一个解决方法,但我担心的是它不受支持。我使用Jquery首先检索作为记录的iframe,因为它不再是它自己的窗口。然后我搜索我的web-resource / iframe的名称/ ID。

$("#contentIFrame0").contents().find("#WebResource_PowerTools")[0].contentWindow.location.reload(true);

这是有效的,也是我现在正在使用的。我的问题是,是否有人知道Xrm.Page.getControl()Xrm.page.ui.controls发生了什么?

4 个答案:

答案 0 :(得分:1)

在调试器中存在拼写错误。它应该是Xrm.Page.ui.controls而不是Xrm.Page.ui.control

下面的代码应该适合你。

Xrm.Page.ui.controls.get("WebResource_PowerTools");

答案 1 :(得分:1)

问题是您尝试在iFrame中访问和使用XRM。但是Xrm函数在窗口中,所以就这样做:

window.parent.Xrm.Page...

答案 2 :(得分:0)

self.parent.Page.ui.controls.get("WebResource_PowerTools");

答案 3 :(得分:0)

Xrm.Page.ui.controls.get('id_iframe').getObject().onload= function() {
    var element = Xrm.Page.ui.controls.get('id_iframe').getObject().contentWindow.document.getElementById('id_element_inside_iframe');
    console.log(element);
};
  • Xrm.Page.ui.controls.get('id_iframe')。getObject():返回 HTML对象iFrame