ข้อมูลเบื้องต้นเกี่ยวกับการทำงานสั่งทำงาน JavaScript บนหน้าเว็บในคำสั่งลัดบน iPhone หรือ iPad
เกือบทุกหน้าเว็บจะถูกเขียนสคริปต์โดยใช้ JavaScript ซึ่งเป็นภาษาการเขียนโปรแกรมที่สร้างเอฟเฟ็กต์ต่างๆ แบบไดนามิกในเว็บเบราว์เซอร์ ซึ่งได้แก่ ภาพเคลื่อนไหว เมนูโต้ตอบ การเล่นวิดีโอ และอื่นๆ อีกมากมาย โดยทั่วไปแล้ว JavaScript จะไม่แสดงขึ้นมาให้เห็นขณะที่คุณดูเว็บไซต์ อย่างไรก็ตาม คุณสามารถควบคุม JavaScript ของหน้าเว็บได้โดยการสร้างคำสั่งลัดที่มีการทำงานสั่งทำงาน JavaScript บนหน้าเว็บ แล้วสั่งทำงานคำสั่งลัดจากแอป Safari
แอปคำสั่งลัดที่สั่งทำงาน 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 แต่คุณก็สามารถแทรกข้อมูลเพิ่มเติมลงในการทำงานได้โดยใช้ตัวแปร Magic ตัวอย่างเช่น คำสั่งลัดเปลี่ยนความเร็ววิดีโอ (มีให้ใช้ในแกลเลอรี่) มีการทำงานสั่งทำงาน JavaScript บนหน้าเว็บที่จะแก้ไขวิดีโอบนหน้าเว็บ อัตราการเล่นของวิดีโอจะถูกควบคุมโดยตัวแปรความเร็ว
ให้ดูที่เปิดใช้คำสั่งลัดจากแอปอื่นบน iPhone หรือ iPad สำหรับข้อมูลเกี่ยวกับการสั่งทำงานคำสั่งลัดจาก Safari
ข้อมูลออกของการทำงานสั่งทำงาน JavaScript บนหน้าเว็บ
ในการส่งคืนข้อมูล คุณต้องเรียกตัวจัดการการทำให้เสร็จสิ้นใน JavaScript เช่น completion(result)
เนื่องจาก JavaScript มักถูกใช้ในรูปแบบอะซิงโครนัส การเรียกใช้จึงตั้งใจไม่ให้เป็นแบบซิงโครนัส ด้วยวิธีนี้ คุณจึงสามารถทำการทำงานให้เสร็จสิ้นได้แบบอะซิงโครนัส ตัวอย่างเช่น ข้อมูลต่อไปนี้สามารถใช้ได้:
window.setTimeout(function() {
completion(true);
}, 1000);
ข้อมูลออกของการทำงานสั่งทำงาน JavaScript บนหน้าเว็บเป็นประเภทข้อมูล JSON ที่สามารถใช้ได้ประเภทใดก็ได้ ซึ่งได้แก่:
สตริง
หมายเลข
บูลีน (จริงหรือเท็จ)
อาร์เรย์ (ซึ่งมีประเภท JSON ที่สามารถใช้ได้ประเภทอื่นๆ)
พจนานุกรม (ซึ่งมีประเภท JSON ที่สามารถใช้ได้ประเภทอื่นๆ)
ค่าว่าง
ไม่ได้ระบุ
หลังบรรยากาศต่างๆ แอปคำสั่งลัดจะเข้ารหัสและถอดรหัสค่าที่ส่งคืนของคุณโดยอัตโนมัติเพื่อสื่อสารระหว่าง JavaScript กับแอปคำสั่งลัด ซึ่งหมายความว่าคุณไม่จำเป็นต้องเรียก JSON.stringify(result)
ก่อนที่จะเรียกตัวจัดการการทำให้เสร็จสิ้น
เนื่องจากค่าที่ส่งคืนคือ JSON ค่าที่ส่งคืนบางค่าจึงจะทำงานได้ไม่ดี ตัวอย่างเช่น ฟังก์ชั่นหรือโหนดจะไม่มีการแทนค่าแบบเข้ารหัส JSON ที่เป็นประโยชน์ ในกรณีนี้ ขอแนะนำให้คุณสร้างอาร์เรย์/พจนานุกรมที่มีค่าที่ใช้งานร่วมกับ JSON ได้ตามที่คุณต้องการ
หมายเหตุ: เนื่องจากวัตถุใน JavaScript เป็นเพียงพจนานุกรม วัตถุพื้นฐานจึงแปลงเป็น JSON ได้เป็นอย่างดี
ถ้าคุณไม่ต้องการส่งคืนข้อมูลใดๆ จากการทำงานสั่งทำงาน JavaScript บนหน้าเว็บ คุณก็สามารถเรียกใช้ completion()
ได้โดยไม่ต้องมีอาร์กิวเมนต์ในฟังก์ชั่น (เนื่องจาก undefined
เป็นข้อมูลออกที่ถูกต้อง) สิ่งนี้ก็เหมือนกับการเรียกใช้ completion(undefined)
โปรดดูที่ข้อมูลเบื้องต้นเกี่ยวกับการใช้ JSON ในคำสั่งลัดบน iPhone และ iPad สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ JSON
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโหนด ให้ดูที่ 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()
) ข้อผิดพลาดจะแสดงขึ้นในระหว่างที่คำสั่งลัดสั่งทำงาน