未触发OnReadyStateComplete

时间:2015-06-05 10:24:35

标签: javascript iframe dynamics-crm dynamics-crm-2015

我尝试添加CRM javascript网络资源并尝试管理iframe元素,但iframe OnReadyStateComplete事件未被触发。下面,第一个警报有效但第二个没有。

function hello()
    {
        var audioPath= Xrm.Page.data.entity.attributes.get("new_audiopath").getValue();
         //var myAudio = document.createElement('audio');
         //myAudio.setAttribute('src', audioPath);
         // myAudio.play(); 

            var IFrame = Xrm.Page.ui.controls.get("IFRAME_Play");
            alert(audioPath);
            //var myAudio =Xrm.Page.ui.controls.get("audioSource");

          IFrame.OnReadyStateComplete=function(){
          alert('iframe ready');
     }
    }

2 个答案:

答案 0 :(得分:1)

我有类似的问题,但只有来自其他domians的iframe内容。我认为这是安全限制,不允许引发事件。 我们使用服务器上的aspx页面解决了这个问题,该页面下载了内容,并为xrm脚本重新创建了它。

答案 1 :(得分:0)

IFrame控件没有OnReadyStateComplete属性或事件。 SDK文档仅提示表单设计器中提供的菜单选项。

但是,实际上可以通过支持的方式将函数附加到IFrame的onload事件:

var iFrameElement = Xrm.Page.getControl("IFRAME_Play").getObject();
iFrameElement.addEventListener("load", function() {
    alert("IFrame Play loaded!");
}

函数getObject返回一个IFrame对象,通过其contentWindowcontentDocument属性,您可以访问iFrame的窗口及其包含的文档。 (另见HTML DOM IFrame Object。)