2009-08-12 36 views
6

Tôi đang gặp sự cố vì tôi đã bao hàm các hàm javascript của mình bên trong vùng tên. Phiên bản 1 của mã của tôi hoạt động tốt. Ban đầu, để gọi javascript từ bên trong Silverlight Tôi sử dụng để sử dụng mã này:Làm thế nào để Silverlight gọi hàm Javascript trong một không gian tên?

HtmlPage.Window.Invoke("hideMyDiv"); 

javascript của tôi trông như thế này:

function hideMyDiv() { 
$('#MyDiv').fadeOut(); 

}

Bây giờ, tôi đã refactored javascript của tôi để được chứa trong một không gian tên. Vì vậy, nó bây giờ trông như thế này:

var activity = { 
message: null, 
hideMyDiv: function() { 
    $('#MyDiv').fadeOut(); 
} }; 

tôi có thể gọi hàm này refactored trong javascript, nó hoạt động như trước đây:

$("document").ready(function() { 
activity.hideMyDiv(); }); 

Nhưng khi tôi cố gắng sử dụng nó từ Silverlight, tôi nhận được lỗi này: Không thể gọi: activity.updateInfo. Đây là mã Silverlight hiện tại của tôi:

HtmlPage.Window.Invoke("activity.hideMyDiv"); 

Tôi đang làm gì sai? (Và cảm ơn!)

Trả lời

11

Đây là cách chính xác ..

ScriptObject so = HtmlPage.Window.Eval("activity") as ScriptObject; 
so.Invoke("hideMyDiv"); 
+1

Thank-you, hoạt động như một nét duyên dáng. – bperreault

Các vấn đề liên quan