Dustin Warner
Dustin Warner

Reputation: 71

Unable to use Xrm.Page.getControl to get an iframe

After the upgrade from dynamics-crm 2011 to dynamics-crm 2013 I am having some issues trying to refresh an iframe.

Previously and in the sdk Microsoft has to get a control/iframe use the "Xrm.Page.getControl()" or other posts say to use "Xrm.page.ui.controls.get()" below are the errors I am getting.enter image description here

I have found a work around but my concern is that it is not supported. I use Jquery to first retrieve the iframe that is the record since it is no longer its own window. Then I search for the Name/Id of my web-resource/iframe.

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

This works and is what I am using now. My question is does any one know what happened to the Xrm.Page.getControl() or Xrm.page.ui.controls?

Upvotes: 4

Views: 8190

Answers (4)

Domenico Zinzi
Domenico Zinzi

Reputation: 986

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(): Returns the HTML object iFrame

Upvotes: 0

Bharat Prajapati
Bharat Prajapati

Reputation: 33

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

Upvotes: 0

tottotech
tottotech

Reputation: 136

The problem is you try to reach and use XRM in iFrame. But Xrm functions are in window, so just do it like this :

window.parent.Xrm.Page...

Upvotes: 1

Charan Raju C R
Charan Raju C R

Reputation: 768

In debugger there is a spelling mistake. It should be Xrm.Page.ui.controls instead of Xrm.Page.ui.control.

Below code should works for you.

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

Upvotes: 1

Related Questions