Javascript 当Silverlight方法';准备好了吗
我有一个页面,在点击按钮时加载另一个窗口。加载的页面上有silverlight控件,因此在接收javascript调用之前需要一些时间来加载和准备 我需要做的是在silverlight插件加载并准备好与我交互后立即调用silverlight对象的特定方法 现在,如果弹出页面已经打开,那么代码如下:Javascript 当Silverlight方法';准备好了吗,javascript,jquery,onload,Javascript,Jquery,Onload,我有一个页面,在点击按钮时加载另一个窗口。加载的页面上有silverlight控件,因此在接收javascript调用之前需要一些时间来加载和准备 我需要做的是在silverlight插件加载并准备好与我交互后立即调用silverlight对象的特定方法 现在,如果弹出页面已经打开,那么代码如下: var slWin = window.open('PopupPage.html', 'WindowName'); var elem = slWin.document.getElementById('s
var slWin = window.open('PopupPage.html', 'WindowName');
var elem = slWin.document.getElementById('slControl');
elem.Content.SlObject.MethodA();
由于控件已加载并准备就绪,因此当窗口已打开时,此操作有效。我需要修改此代码以处理elem
需要一些时间准备的情况
我尝试使用jQuery的ready
和load
方法向相应的事件添加处理程序,但没有特别的缺陷。以下是完整的片段:
var slWin = window.open('', 'WindowName');
var elem = slWin.document.getElementById('slControl');
if (elem == null) {
slWin.location.href = 'PopupPage.aspx';
// this branch doesn't work
$(slWin).load(function () {
elem = slWin.document.getElementById('slControl');
elem.Content.SlObject.MethodA();
});
}
else {
// this branch works fine
elem.Content.SlObject.MethodA();
}
我如何解决这个问题?我不介意jQuery解决方案。发生此错误是因为当您尝试访问Silverlight对象时,它没有完全加载 尝试使用silverlight对象的“onload”事件在它准备好使用时进行检测。这里有一个指向MSDN文档的链接: 希望有帮助。:)