DCSIMG
הפעלת פונקציה ב - Silverlight מתוך קוד javascript - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

הפעלת פונקציה ב - Silverlight מתוך קוד javascript

 

תודה לאיתמר ריבר על העזרה בפוסט זה.
 
 
כדי להפעיל פונקציה בקוד ה - silverlight מתוך ה - javascript נצטרך לעשות מספר פעולות פשוטות.
 
ראשית על המחלקה שמכילה פונקצייה שנרצה להפעיל מקוד JS נשים attribute בשם ScriptableType
 

[ScriptableType]

public class MyLogicClass

{

 

}

 
על כל פונקציה שנרצה להפעיל מ - JS נשים ScriptableMemeber
 

[ScriptableMember]

public bool IsTextOk(string str)

{

    return str == "str";

}

 
דבר אחד נוסף, ב - Application_Startup (בקובץ App.xaml.cs) נוסיף את הקוד הבא.
 

HtmlPage.RegisterScriptableObject("LogicClass", new MyLogicClass());

 
 
כעת בדף ה - html שמארח את ה -silverlight נכתוב את הקוד הבא:
 

function callSilverlight() {

    var obj = document.getElementById('silverObj');

    var res = obj.Content.LogicClass.IsTextOk("str");

    alert(res);

}

 
חשוב לשים לב שכברירת מחדל ה - object של ה - silverlight לא מקבל id, ואנחנו צריכים לתת לו id כדי שנוכל להפעיל את הפונקציות שלו.
 
 
במידה וה - silverlight מתארח בדומיין אחר, כלומר אובייקט ה - silverlight מגיע מדומיין אחד ודף ה - html שמארח אותו יושב בדומיין אחר, נצטרך להגדיר בקובץ manifest שמותר להפעיל פונקציות מצד הלקוח.
 
קובץ ה - manifest יושב תחת תיקיית Properties והוא נקרא AppManifest.xml.
 
 
 

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        ExternalCallersFromCrossDomain="ScriptableOnly"

>

    <Deployment.Parts>

    </Deployment.Parts>

</Deployment>

 

שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 2 and 7 and type the answer here:


Enter the numbers above: