从dynamics-crm 2011升级到dynamics-crm 2013后,我在尝试刷新iframe时遇到了一些问题。
以前和在sdk中微软必须得到一个控件/ iframe使用“Xrm.Page.getControl()”或其他帖子说使用“Xrm.page.ui.controls.get()”下面是错误我到了。
我找到了一个解决方法,但我担心的是它不受支持。我使用Jquery首先检索作为记录的iframe,因为它不再是它自己的窗口。然后我搜索我的web-resource / iframe的名称/ ID。
$("#contentIFrame0").contents().find("#WebResource_PowerTools")[0].contentWindow.location.reload(true);
这是有效的,也是我现在正在使用的。我的问题是,是否有人知道Xrm.Page.getControl()
或Xrm.page.ui.controls
发生了什么?
答案 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);
};