OnReadyStateComplete 未被触发
OnReadyStateComplete is not fired
我尝试添加 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');
}
}
我遇到了类似的问题,但仅限于来自其他域的 iframe 内容。我认为这是安全限制,不允许引发事件。
我们使用服务器上的 aspx 页面解决了这个问题,它下载了内容,并为 xrm 脚本重新创建了它。
IFrame 控件没有 OnReadyStateComplete
属性 或事件。 SDK 文档仅提示表单设计器中可用的菜单选项。
但是,实际上可以以受支持的方式将函数附加到 IFrame 的 onload
事件:
var iFrameElement = Xrm.Page.getControl("IFRAME_Play").getObject();
iFrameElement.addEventListener("load", function() {
alert("IFrame Play loaded!");
}
函数 getObject
returns 一个 IFrame 对象,通过其 contentWindow
和 contentDocument
属性,您可以访问 iFrame 的 window 及其包含的文档。 (另见 HTML DOM IFrame Object。)
我尝试添加 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');
}
}
我遇到了类似的问题,但仅限于来自其他域的 iframe 内容。我认为这是安全限制,不允许引发事件。 我们使用服务器上的 aspx 页面解决了这个问题,它下载了内容,并为 xrm 脚本重新创建了它。
IFrame 控件没有 OnReadyStateComplete
属性 或事件。 SDK 文档仅提示表单设计器中可用的菜单选项。
但是,实际上可以以受支持的方式将函数附加到 IFrame 的 onload
事件:
var iFrameElement = Xrm.Page.getControl("IFRAME_Play").getObject();
iFrameElement.addEventListener("load", function() {
alert("IFrame Play loaded!");
}
函数 getObject
returns 一个 IFrame 对象,通过其 contentWindow
和 contentDocument
属性,您可以访问 iFrame 的 window 及其包含的文档。 (另见 HTML DOM IFrame Object。)