תכנות לחלונות 8 – שימוש ב jQuery ובספריות צד שלישי נוספות

3 בינואר 2012

תגיות: , , , , ,
אין תגובות



החדשות הטובות כשניגשים לשימוש בjQuery ובספריות נוספות הן שזה פשוט עובד. כמעט.
נתחיל בלהוריד את הגרסה האחרונה –


image


כפי שאפשר לראות, חלון ההורדה מציין שהקובץ לא בטוח היות ואי אפשר “לזהות את מפרסם התוכנה”. אז בחלונות 8 קובץ ג’אווה סקריפט הוא קובץ הרצה לכל דבר, היות והוא יכול להכיל קריאות לWinRT. במידה ונפתח את מאפייני הקובץ, נראה כי יש כפתור Unblock בשביל להוריד את חסימת האבטחה, בדיוק כפי שבחלונות 7 יש כשמורידים קובץ dll:


image


נכון לעכשיו גם אם לא נעשה Unblock עדיין אפשר להשתמש בקובץ (כפי שראינו בפוסט קודם, יכולות האבטחה והחתימה הדיגיטלית עדיין לא מופעלים בגרסה זו של חלונות), כך שאפשר פשוט להוסיף אותו לפרוייקט ולהשתמש בו.



 
<script src="js/jquery-1.7.1.js" type="text/javascript"></script>
 

וכמובן לשים לב לסדר הקבצים:



<head>
    <meta charset="utf-8" />
    <title>WinWebApp8</title>
    <!– WinJS references –>
    <link rel="stylesheet" href="/winjs/css/ui-dark.css" />
    <script src="/winjs/js/base.js"></script>
    <script src="/winjs/js/wwaapp.js"></script>
    <!– WinWebApp8 references –>
    <link rel="stylesheet" href="/css/default.css" />
 <script src="js/jquery-1.7.1.js" type="text/javascript"></script>
    <script src="/js/default.js"></script>
</head>
 

בשלב זה נוכל לשנות את השורות מהפוסט הקודם, שלא השתמשו בjQuery, לקריאות jQuery רגילות, כך שבמקום



document.getElementById("downloadStatus").innerText = "downloading posts…";
 
WinJS.xhr({ url: "http://blogs.microsoft.co.il/blogs/eladkatz/rss.aspx" }).
 then(processPosts, downloadError);

נוכל לרשום



$('#downloadStatus').text("downloading posts…");
//document.getElementById("downloadStatus").innerText = "downloading posts…";

וזה פשוט יעבוד.


לעומת זאת, במידה ונרצה לשנות את קריאת האג’קס לכזו של jQuery, נתקל בבעיה:



//WinJS.xhr({ url: "http://blogs.microsoft.co.il/blogs/eladkatz/rss.aspx" }).
//    then(processPosts, downloadError);
 
$.ajax("http://blogs.microsoft.co.il/blogs/eladkatz/rss.aspx",
{
 success: function (data)
 {
  debugger;
  //do somegthing with data
 }
});

הקריאה פשוט לא תתבצע.
הסיבה לכך היא ש- jQuery, החל מגרסה 1.6 מבצע בדיקה של cross-domain, ובמקרה הזה jQuery טיפה חכם מדי. בשביל לעקוף את זה צריך פשוט לספר לו שזה בסדר, ע”י השורה support.cors = true.$



//WinJS.xhr({ url: "http://blogs.microsoft.co.il/blogs/eladkatz/rss.aspx" }).
//    then(processPosts, downloadError);
$.support.cors = true;
 
$.ajax("http://blogs.microsoft.co.il/blogs/eladkatz/rss.aspx",
{
 success: function (data)
 {
  debugger;
  //do somegthing with data
 }
});

והפעם זה יעבוד כפי שרצינו.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *