2009-08-12 31 views
6

मुझे कोई समस्या है क्योंकि मैंने अपने जावास्क्रिप्ट कार्यों को नामस्थान के अंदर लपेट लिया है। मेरे कोड का संस्करण 1 ठीक काम किया।सिल्वरलाइट कैसे नामस्थान में जावास्क्रिप्ट फ़ंक्शन को आमंत्रित करें?

HtmlPage.Window.Invoke("hideMyDiv"); 

मेरे जावास्क्रिप्ट इस तरह देखा: सिल्वरलाइट अंदर से मैं इस कोड का उपयोग करने के लिए इस्तेमाल मूल रूप से, जावास्क्रिप्ट कॉल करने के लिए

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

}

अब, मैं करने के लिए अपने जावास्क्रिप्ट पुनर्संशोधित गए एक नामस्थान में निहित होना चाहिए। तो यह अब इस तरह दिखता है:

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

मैं जावास्क्रिप्ट में इस पुनर्संशोधित फ़ंक्शन को कॉल करें, ऐसा करने से पहले काम करता है:

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

लेकिन जब मैं सिल्वरलाइट से इसका इस्तेमाल करने की कोशिश, मैं इस त्रुटि मिलती है: शामिल करने में विफल: activity.updateInfo। यह मेरा वर्तमान सिल्वरलाइट कोड है:

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

मैं क्या गलत कर रहा हूं? (और धन्यवाद!)

उत्तर

11

यह सही तरीका है ..

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

धन्यवाद, एक आकर्षण की तरह काम करता है। – bperreault

संबंधित मुद्दे