Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当Silverlight方法';准备好了吗_Javascript_Jquery_Onload - Fatal编程技术网

Javascript 当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

我有一个页面,在点击按钮时加载另一个窗口。加载的页面上有silverlight控件,因此在接收javascript调用之前需要一些时间来加载和准备

我需要做的是在silverlight插件加载并准备好与我交互后立即调用silverlight对象的特定方法

现在,如果弹出页面已经打开,那么代码如下:

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文档的链接:

希望有帮助。:)