מבוא לפעולה ״הפעל JavaScript בעמוד האינטרנט״ ב״קיצורים״ ב-iPhone או ב-iPad
כמעט כל התסריטים של עמודי אינטרנט נוצרים באמצעות JavaScript, שפת תכנות היוצרת אפקטים דינמיים בתוך דפדפנים, כולל הנפשות, תפריטים אינטראקטיביים, הפעלות וידאו ועוד. בדרך כלל, JavaScript אינו גלוי בפניך בעת צפייה באתרים. עם זאת, על-ידי בניית קיצור המכיל את הפעולה ״הפעל JavaScript בעמוד האינטרנט״ והפעלת הקיצור מהיישום Safari, ניתן לשלוט ב-JavaScript של עמוד אינטרנט.
לקיצורים שמפעילים את ה-JavaScript המותאם אישית שלך בעמוד אינטרנט יש שימושים רבים. למשל, ניתן ליצור קיצורים שמאחזרים נתונים ספציפיים מעמוד אינטרנט ואז משלבים את הנתונים הללו בתוך משימה, כגון חילוץ לוח זמנים של שיעור והוספתו ליישום ״לוח שנה״, או ייצוא נתוני החברים של קבוצה במדיה חברתית והוספתם לגיליון עבודה.
ניתן גם ליצור קיצורים המאפשרים לך לשנות עמוד אינטרנט, כגון שינוי גופן המלל של עמוד האינטרנט או שינוי המהירות שבה וידאו מופעל. לפני שניתן להפעיל JavaScript מתוך קיצור, יש להפעיל את ההגדרה. ראה/י הגדרות פרטיות ואבטחה מתקדמות ב”קיצורים” ב-iPhone או ב-iPad.
למידע בנושא השימוש בקיצורים המפעילים JavaScript בעמוד אינטרנט, ראה/י שימוש בפעולה ״הפעל JavaScript בעמוד האינטרנט״ ב״קיצורים״ ב-iPhone או ב-iPad.
אודות אחזור של נתוני עמוד אינטרנט
הפעולה ״הפעל JavaScript בעמוד האינטרנט״ מאפשרת לך לאחזר נתונים מעמוד אינטרנט על-ידי לכידת כל הרכיבים התואמים לקריטריונים מסוימים ואז לתעתק רכיבים אלה על-מנת לבצע משימה עם הנתונים (או לבחון את הרכיבים בעתיד).
למשל, ליצירת רשימה של כל רכיבי התמונות בעמוד אינטרנט, יש להשתמש ב:
var elements = document.querySelectorAll("img”);
בדוגמה אחרת, לאחור כל רכיב עם הרמה ״post״, יש להשתמש ב:
var elements = document.querySelectorAll(".post”);
מרגע שנוצרת NodeList, ניתן לתעתק את הרכיבים (על-מנת לסנן עוד יותר את הרכיבים או להוסיף אותם למבנה נתונים) באמצעות משהו כמו:
var elements = ...;
for (let element of elements) {
// ...
}
למידע נוסף על ביצוע שאילתה על תוצאות עמוד אינטרנט, ראה/י https://developer.mozilla.org/Selectors ו-https://developer.mozilla.org/SelectorAll.
קלט של פעולת ״הפעל JavaScript בעמוד האינטרנט״
הקלט של הפעולה ״הפעל JavaScript בעמוד האינטרנט״ חייב להיות עמוד אינטרנט פעיל של Safari. פירוש הדבר שעליך להפעיל את הקיצור מגיליון השיתוף (כלומר מתוך Safari, SFSafariViewController או ASWebAuthenticationSession).
כשקיצור מופעל מתוך גיליון שיתוף, הקלט מהיישום Safari מועבר לפעולה הראשונה של הקיצור שלך.
אף שהקלט בפעולה ״הפעל JavaScript בעמוד האינטרנט״ חייב להיות עמוד אינטרנט של Safari, ניתן להוסיף עוד נתונים לתוך הפעולה על-ידי שימוש במשתני קסם. למשל, הקיצור שינוי מהירות סרט (זמין בגלריה) מכיל פעולת ״הפעל JavaScript בעמוד האינטרנט״ שמשנה וידאו בעמוד אינטרנט. קצב ההפעלה של הווידאו נשלט על-ידי המשתנה ״מהירות״.
לקבלת מידע בנושא הפעלת קיצורים מתוך Safari, ראה/י הפעלת קיצור מיישום אחר ב-iPhone או ב-iPad.
פלט של פעולת ״הפעל JavaScript בעמוד האינטרנט״
על-מנת להחזיר נתונים, עליך לבצע קריאה לרכיב ה-handler של ההשלמה ב-JavaScript, כגון completion(result)
. מאחר ש-JavaScript משמש בדרך כלל עם תבניות א-סנכרוניות, הקריאה במתכוון אינה סנכרונית. באופן זה ניתן להשלים את הפעולה באופן אסינכרוני. למשל, המקרה הבא תקין:
window.setTimeout(function() {
completion(true);
}, 1000);
הפלט של הפעולה הפעל JavaScript בעמוד האינטרנט הוא כל סוג נתוני JSON תקין, כולל:
מחרוזת
מספר
בוליאני (אמת או שקר)
מערך (מכיל כל סוג JSON תקין אחר)
מילון (מכיל כל סוג JSON תקין אחר)
ריק
לא מוגדר
מאחורי הקלעים, ״קיצורים״ מקודד ומפענח אוטומטית את הערך שהוחזר על-מנת לקיים תקשורת בין JavaScript לבין היישום ״קיצורים״. פירוש הדבר שאינך צריך/ה לבצע קריאה אל JSON.stringify(result)
לפני הקריאה אל רכיב ה-handler של ההשלמה.
מאחר שערך ההחזרה הוא JSON, ערכי החזרה מסוימים לא יפעלו היטב. לדוגמא, לפונקציה או לצומת לא יהיה ייצוג שימושי בקידוד JSON. במקרה זה, מומלץ ליצור מערך/מילון המכיל את הערכים תואמי-JSON הנחוצים.
הערה: מאחר שאובייקט ב-JavaScript הוא פשוט מילון, אובייקטים בסיסיים עוברים המרה ל-JSON בצורה טובה.
אם אינך רוצה להחזיר נתונים מהפעולה ״הפעל JavaScript בעמוד האינטרנט״, ניתן לקרוא ל-completion()
ללא ארגומנט בפונקציה (מאחר שundefined
הוא פלט תקין). זהו מצב זהה לקריאה ל-completion(undefined)
.
למידע נוסף בנושא JSON, ראה/י מבוא לשימוש ב-JSON ב”קיצורים” ב-iPhone וב-iPad.
.https://developer.mozilla.org/Node למידע נוסף על צמתים, ראה/י
למידע נוסף על פונקציות, ראה/י https://developer.mozilla.org/Functions.
הגבלת זמן עבור הפעולה ״הפעל JavaScript בעמוד האינטרנט״
כמו כל הרחבות JavaScript ב-Safari, הפעולה ״הפעל JavaScript בעמוד האינטרנט״ כפופה להגבלת זמן, ויש לבצעה במהירות האפשרית. פעולות JavaScript העושות שימוש בפונקציות סנכרוניות עשויות להתמשך מעבר לזמן הקצוב, כולל:
window.alert()
window.prompt()
window.confirm()
פסקי זמן שנמשכים מספר שניות - לדוגמא:
window.setTimeout(function() { completion(); }, 5000);
אם פעולת ה-JavaScript שלך תחרוג מהזמן הקצוב, הקיצור לא יושלם ותופיע הודעת שגיאה מסוג ״פסק זמן של JavaScript״ בעת הפעלת הקיצור.
טיפול בשגיאות תחביר וזמן ריצה
ניתן להשתמש בכל תחביר הנתמך ב-Safari לכתיבת JavaScript בפעולה ״הפעל JavaScript בעמוד האינטרנט״.
הפעולה ״הפעל JavaScript בעמוד האינטרנט״ ביישום ״קיצורים״ מסייעת לך לזהות שגיאות על-ידי ביצוע בדיקת תחביר בסיסית לפני הפעלת הקיצור מההרחבה של Safari.
בעת הכנסת התסריט לשדה המלל, הדגשות התחביר עוזרות להבטיח שה-JavaScript תקני. למשל, אם שכחת לכלול סימני מירכאות בסוף מחרוזת, כל המלל אחרי אותה מחרוזת יהיה מודגש.
אם תחביר התסריט תקני אך מכיל שגיאת זמן ריצה, הפעולה ״הפעל JavaScript בעמוד האינטרנט״ תופסת את החריגים ומציגה אותם. למשל, אם התסריט מפנה למשתנה או לפונקציה שאינם קיימים (כגון shortcuts.completion()
), תופיע שגיאה בזמן ההפעלה.