簡體   English   中英

准備就緒時,從Javascript調用Silverlight方法

[英]Call Silverlight method from Javascript when it's ready

我有一個頁面,單擊按鈕會加載另一個窗口。 加載的頁面上具有Silverlight控件,因此加載和准備需要一些時間才能接收JavaScript調用。

我需要做的是在silverlight插件加載好並准備與我互動之后立即調用silverlight對象的特定方法。

現在,如果已經打開了彈出頁面,則代碼將如下所示:

var slWin = window.open('PopupPage.html', 'WindowName');
var elem = slWin.document.getElementById('slControl');
elem.Content.SlObject.MethodA();

當窗口已經打開,因為控件已被加載並准備就緒,這將起作用。 elem需要一些時間准備時,我需要修改此代碼以處理這種情況。

我嘗試使用jQuery的readyload方法將處理程序添加到相應的事件中,但沒有特別的不足。 這是完整的代碼段:

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文檔的鏈接:

http://msdn.microsoft.com/zh-CN/library/cc838107(v=vs.95).aspx

希望能幫助到你。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM