
शॉर्टकट में “वेबपृष्ठ पर JavaScript चलाएँ” क्रिया परिचय
तक़रीबन सभी वेबपृष्ठ की स्क्रिप्ट JavaScript का उपयोग करके तैयार होती है, जो एक ऐसी प्रोग्रामिंग भाषा है जो वेब ब्राउज़र के अंदर ऐनिमेशन, इंटरऐक्टिव मेनू, वीडियो प्लेबैक आदि सहित डायनैमिक प्रभाव पैदा करती है। आमतौर पर, जब आप वेबसाइट देखते हैं, तब आपको JavaScript नहीं दिखाई देती है। हालाँकि, “वेबपृष्ठ पर JavaScript चलाएँ” क्रिया वाले शॉर्टकट को बनाने और फिर Safari ऐप से शॉर्टकट रन करने से आप किसी वेबपृष्ठ की JavaScript नियंत्रित कर सकते हैं।
वेबपृष्ठ पर आपकी कस्टम JavaScript रन करने वाले शॉर्टकट के अनगिनत उपयोग हैं। उदाहरण के लिए, आप ऐसे शॉर्टकट बना सकते हैं जो किसी वेबपृष्ठ से ख़ास डेटा निकाल सकते हैं और फिर वह डेटा किसी टास्क में डाल सकते हैं। जैसे, कक्षा शेड्यूल निकालना और फिर उसे कैलेंडर ऐप में जोड़ना या किसी सोशल मीडिया समूह का सदस्य डेटा एक्सपोर्ट करना और फिर वह डेटा स्प्रेडशीट में जोड़ना।
आप ऐसे शॉर्टकट भी बना सकते हैं जो वेबपृष्ठ संशोधित करें, जैसे कि वेबपृष्ठ टेक्स्ट का फ़ॉन्ट बदलना या वीडियो प्लेबैक की गति बदलना।
वेबपृष्ठ पर JavaScript रन करने वाले शॉर्टकट उपयोग की जानकारी के लिए, शॉर्टकट में “वेबपृष्ठ पर JavaScript चलाएँ” क्रिया का उपयोग करें देखें।
वेबपृष्ठ डेटा निकालने के बारे में
“वेबपृष्ठ पर JavaScript चलाएँ” क्रिया से आप निश्चित मानदंड का पालन करने वाले सभी ऐलिमेंट को मिलाकर किसी वेबपृष्ठ से डेटा निकाल सकते हैं फिर उस डेटा के साथ कार्य पूरा करने के लिए (या ऐलिमेंट के फिर निरीक्षण के लिए) उन ऐलिमेंट को दोहराएँ।
उदाहरण के लिए, वेबपृष्ठ पर हरेक इमेज एलिमेंट की सूची बनाने के लिए, इसे उपयोग करें :
var elements = document.querySelectorAll("img");
दूसरे उदाहरण में, कक्षा “पोस्ट” के साथ हरेक एलिमेंट को निकालने के लिए, इसे उपयोग करें :
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 से शॉर्टकट रन करने के बारे में जानकारी के लिए, अन्य ऐप में शॉर्टकट चलाएँ देखें।
“वेबपृष्ठ पर JavaScript चलाएँ” क्रिया आउटपुट
डेटा वापस करने के लिए, आपको JavaScript जैसे कि completion(result)
में कंप्लिशन हैंडलर को कॉल करना होगा। चूंकि JavaScript आमतौर पर ऐसिंक्रोनस पैटर्न के साथ उपयोग होती है, इसलिए कॉल जानबूझकर सिंक्रोनस नहीं होती है। इस तरह, आप क्रिया को ऐसिंक्रोनस रूप से पूरा कर सकते हैं। उदाहरण के लिए, निम्नलिखित वैध है :
window.setTimeout(function() {
completion(true);
}, 1000);
“वेबपृष्ठ पर JavaScript चलाएँ” क्रिया का आउटपुट कोई भी मान्य JSON डेटा प्रकार होता है जिसमें निम्न शामिल हैं :
स्ट्रिंग
संख्या
बूलियन (सत्य या असत्य)
सारणी (कोई भी अन्य वैध JSON प्रकार शामिल है)
शब्दकोश (कोई भी अन्य वैध JSON प्रकार शामिल है)
Null
अनिर्धारित
दृश्यों के पीछे, शॉर्टकट JavaScript और शॉर्टकट ऐप के बीच संचार करने के लिए आपके वापसी मान को ऑटोमैटिकली एंकोड और डीकोड करते हैं। इसका मतलब आपको कंप्लिशन हैंडलर को कॉल करने से पहले JSON.stringify(result)
को कॉल करने की ज़रूरत नहीं है।
चूंकि वापसी मान JSON है, इसलिए कुछ वापसी मान सही ढंग से काम नहीं करेंगे। उदाहरण के लिए, फ़ंक्शन या नोड के पास उपयोगी JSON-एंकोडेड प्रस्तुति नहीं होगी। इस स्थिति में, यह अनुशंसित किया जाता है कि आप ऐसी सारणी/शब्दकोश बनाएँ जिसमें आपके आवश्यक JSON-संगत मान शामिल हों।
नोट : चूँकि JavaScript में एक ऑब्जेक्ट सिर्फ़ एक शब्दकोश होता है, इसलिए मूल ऑब्जेक्ट JSON में सही ढंग से बदलते हैं।
यदि आप वेबपृष्ठ पर JavaScript चलाएँ क्रिया से कोई डेटा परिणाम में नहीं चाहते हैं, तो आप फ़ंक्शन में बिना आर्ग्युमेंट के completion()
कॉल कर सकते हैं (क्योंकि undefined
मान्य आउटपुट है)। यह completion(undefined)
कॉल करने के समान ही है।
JSON के बारे में अधिक जानकारी के लिए, शॉर्टकट में JSON के उपयोग के बारे में देखें।
नोड पर अधिक जानकारी के लिए https://developer.mozilla.org/Node देखें।
फ़ंक्शन पर अधिक जानकारी के लिए https://developer.mozilla.org/Functions देखें।
“वेबपृष्ठ पर JavaScript चलाएँ” क्रिया की समय सीमा
Safari में सभी JavaScript एक्सटेंशन की तरह ही “वेबपृष्ठ पर JavaScript चलाएँ” क्रिया भी समय सीमा का विषय है और इसे जल्द से जल्द पूरा कर देना चाहिए। सिंक्रोनस फ़ंक्शन का उपयोग करने वाली JavaScript हो सकता है समय पर पूरी न हो, निम्न सहित :
window.alert()
window.prompt()
window.confirm()
कई सेकेंड तक चलने वाली समय समाप्तियाँ—उदाहरण के लिए :
window.setTimeout(function() { completion(); }, 5000);
यदि आपकी JavaScript समयसीमा पार करती है, तो शॉर्टकट पूरा होने में विफल हो जाएगा और आप द्वारा शॉर्टकट चलाने पर “JavaScript समय समाप्ति” त्रुटि संदेश दिखेगा।

सिंटैक्स और रनटाइम त्रुटि हैंडलिंग
आप ऐसा कोई भी सिंटैक्स उपयोग कर सकते हैं जो “वेबपृष्ठ पर JavaScript चलाएँ” क्रिया में JavaScript लिखने के लिए Safari पर समर्थित हो। iOS 13 ECMA 6 JavaScript सिंटैक्स सहित लूप और
लेट
का भी समर्थन करता है।
शॉर्टकट ऐप में “वेबपृष्ठ पर JavaScript चलाएँ” क्रिया सामान्य सिंटैक्स जाँच करके आपको Safari एक्सटेंशन से शॉर्टकट चलाने से पहले त्रुटियाँ देखने में मदद करती है।
जैसे ही आप टेक्स्ट फ़ील्ड में अपनी स्क्रिप्ट दर्ज करते हैं, सिंटैक्स हाईलाइटिंग यह सुनिश्चित करने में मदद करती है कि आपकी JavaScript वैध है। उदाहरण के लिए, यदि आप स्ट्रिंग के अंत में कोटेशन चिह्न लगाना भूल जाते हैं, तो उस स्ट्रिंग के बाद का सारा टेक्स्ट हाईलाइट हो जाता है।
यदि आपकी स्क्रिप्ट का सिंटैक्स मान्य है लेकिन इसमें रनटाइम त्रुटि शामिल है, तो “वेबपृष्ठ पर JavaScript चलाएँ” क्रिया अपवादों का पता लगाकर उन्हें प्रदर्शित करती है। उदाहरण के लिए, यदि आपकी स्क्रिप्ट ऐसे वेरिएबल या फ़ंक्शन का संदर्भ लेती है जो मौजूद नहीं है (जैसे कि shortcuts.completion()
), तो रनटाइम पर एक त्रुटि प्रदर्शित होती है।

गोपनीयता और सुरक्षा
जब आप किसी शॉर्टकट को वेबपृष्ठ पर Javascript चलाने की अनुमति देते हैं, तो वह शॉर्टकट उस वेबपृष्ठ के संभावित संवेदी डेटा सहित सारी जानकारी ऐक्सेस कर सकता है। शॉर्टकट ऐप कुछ तरीक़ों का इस्तेमाल करता है ताकि यह सुनिश्चित हो कि आप अपने JavaScript शॉर्टकट सुरक्षित और गोपनीय रूप से रन कर सकें।
जब आप “वेबपृष्ठ पर JavaScript चलाएँ” क्रिया वाले शॉर्टकट चलाते हैं, तो एक संकेत आपको यह बताने के लिए प्रदर्शित होता है कि शॉर्टकट वेबपृष्ठ से इंटरऐक्ट करने वाला है। इसका मतलब है कि शॉर्टकट वेबपृष्ठ से संभावित संवेदी डेटा ऐक्सेस कर सकता है, जैसे कि पासवर्ड, फ़ोन नंबर या क्रेडिट कार्ड जानकारी।

आप द्वारा “अनुमति दें” पर टैप करने से, शॉर्टकट निर्दिष्ट वेबपृष्ठ पर चलता है। यदि आप एक ही शॉर्टकट एक ही वेबपृष्ठ पर फिर चलते हैं, तो शॉर्टकट दोबारा संकते नहीं दिखाता है। यह अनुमति प्रति शॉर्टकट, प्रति वेबपृष्ठ के आधार पर क़ायम रहती है।
आप द्वारा किसी शॉर्टकट को किसी वेबपृष्ठ के ऐक्सेस की अनुमति देने पर शॉर्टकट समय-समय पर अपडेट की गई मालवेयर डेफ़िनिशन को डाउनलोड करके आपको संभावित मैलिसियस स्क्रिपट से फिर सुरक्षित करने के लिए एक अतिरिक्त चरण लेता है। वेबपृष्ठ से इंटरऐक्ट करने से पहले, शॉर्टकट JavaScript का विश्लेषण करता है, फिर मालवेयर डेफ़िनिशन से सलाह लेता है। इस मूल्यांकन के आधार पर, शॉर्टकट को स्क्रिपट की अनुमति देने के लिए, स्क्रिप्ट को अस्वीकार करने के लिए या शॉर्टकट को रन करने की अनुमति देने से पहले एक अतिरिक्त संकेत प्रदर्शित करने के लिए निर्देशित किया जाता है।
यह मूल्यांकन आपके डिवाइस पर किया जाता है, आपकी (“वेबपृष्ठ पर JavaScript चलाएँ” क्रिया के टेक्स्ट फ़ील्ड में) JavaScript के कॉन्टेंट विश्लेषण के लिए बाहरी सर्वर को नहीं भेजे जाते हैं।
यदि शॉर्टकट को रन करने से रोका जाता है, तो एक स्पष्टीकरण त्रुटि संदेश प्रदर्शित होता है।
महत्वपूर्ण : आपको वह शॉर्टकट कभी नहीं चलाना चाहिए जिसमें ऐसी JavaScript हो जिस पर आपको विश्वास न हो।