javascript questions ईवेंट हैंडलर टैग में "जावास्क्रिप्ट:" का उद्देश्य(यदि कोई है) क्या है?




javascript programs (8)

मैं हाल ही में जावास्क्रिप्ट कोड को पढ़ कर अपने जावास्क्रिप्ट कौशल को बेहतर बनाने के लिए एक ठोस प्रयास कर रहा हूं जैसा कि मैं कर सकता हूं। ऐसा करने में मुझे कभी-कभी javascript: दिखाई देता है javascript: एचटीएमएल तत्व टैग में ईवेंट हैंडलर विशेषता के सामने संलग्न प्रीफ़िक्स। इस उपसर्ग का क्या उद्देश्य है? मूल रूप से, इसमें कोई अंतर है:

onchange="javascript: myFunction(this)"

तथा

onchange="myFunction(this)"

?


मुझे नहीं पता कि javascript: उपसर्ग का मतलब onevent विशेषताओं के भीतर कुछ भी है, लेकिन मुझे पता है कि वे नए टैग में लिंक खोलने की कोशिश करते समय एंकर टैग में परेशान हैं। href को गिरावट के रूप में इस्तेमाल किया जाना चाहिए और कभी लिंक से जावास्क्रिप्ट संलग्न नहीं करना चाहिए।


Flubba:

javascript: प्रयोग javascript: HREF में फ़ायरफ़ॉक्स और अन्य ब्राउज़रों में "नई विंडो में खोलें" और "नए टैब में खोलें" को तोड़ता है

यह "गलत" नहीं है, लेकिन अगर आप अपनी साइट को नेविगेट करना कठिन बनाना चाहते हैं ...


@mercutio

क्या बकवास है।

नहीं, यह हास्यास्पद नहीं है, जावास्क्रिप्ट: एक छद्म प्रोटोकॉल है जो वास्तव में केवल एक लिंक के विषय के रूप में इस्तेमाल किया जा सकता है, इसलिए वह काफी सही है। आपका सुझाव वास्तव में बेहतर है, लेकिन सभी का सबसे अच्छा तरीका HTML तत्वों को पुनरावृति करने और व्यवहार को जोड़ने के लिए विनोदी जावास्क्रिप्ट तकनीकों का उपयोग करना है, जैसा कि jQuery जैसे पुस्तकालयों में प्रयोग किया जाता है।


इसका उपयोग केवल href टैग में ही किया जाना चाहिए

क्या बकवास है।

स्वीकृत तरीका यह है:

<a href="/non-js-version/" onclick="someFunction(); return false">Blah</a>

लेकिन ओपी का उत्तर देने के लिए, javascript: का उपयोग करने के लिए आम तौर पर कोई कारण नहीं है javascript: अब और नहीं वास्तव में, आपको अपनी स्क्रिप्ट से जावास्क्रिप्ट इवेंट संलग्न करना चाहिए, और मार्कअप में इनलाइन नहीं करना चाहिए लेकिन, यह एक शुद्ध चीज़ है जो मुझे लगता है: -डी


असल में, क्या इसमें कोई अंतर है onchange="javascript: myFunction(this)" और onchange="myFunction(this)" ?

मान लें कि आप href="javascript: myFunction(this)" मतलब है, हाँ, खासकर जब जावास्क्रिप्ट का उपयोग करते हुए सामग्री लोड हो रहा है जावास्क्रिप्ट का उपयोग करना: छद्म प्रोटोकॉल सामग्री को कुछ मनुष्यों और सभी खोज इंजनों के लिए अपर्याप्त बनाता है, जबकि वास्तविक href का इस्तेमाल करते हुए और फिर जावास्क्रिप्ट का उपयोग करके लिंक के व्यवहार को बदलना सामग्री को सुलभ बनाता है अगर जावास्क्रिप्ट बंद है या विशेष क्लाइंट में उपलब्ध नहीं है


javascript: जेएस कोड में (जैसे एक onclick विशेषता) केवल जारी / गोटो लेबल स्टेटमेंट के साथ प्रयोग करने के लिए एक लेबल है जो ब्राउजर (शायद कहीं भी नहीं) द्वारा समर्थित या हो सकता है। यह ज़िपज़म्म् हो सकता है: बजाय यहां तक ​​कि अगर लेबल का उपयोग नहीं किया जा सकता है, तो ब्राउज़र अभी भी इसे स्वीकार करते हैं, इसलिए यह त्रुटि नहीं पैदा करता है।

इसका मतलब यह है कि अगर किसी व्यक्ति को एक onclick विशेषता में एक बेकार लेबल फेंक रहा है, तो शायद वे नहीं जानते हैं कि वे क्या कर रहे हैं और केवल नकल और चिपकाने या इसे करने से आदत से बाहर कर रहे हैं

जावास्क्रिप्ट: href विशेषता में एक जावास्क्रिप्ट यूआरआई का प्रतीक है।

उदाहरण :

javascript:(function()%7Balert(%22test%22)%3B%7D)()%3B

शायद आपके उदाहरण में कुछ नहीं मेरी समझ है कि javascript: एंकर टैग के लिए है (एक वास्तविक href स्थान पर) आप इसका उपयोग करेंगे ताकि उपयोगकर्ता आपकी लिंक पर क्लिक कर सकें, लेकिन जब पेज पर एक नेविगेशन की शुरुआत न की जाए, (जो एक href के साथ एक रिक्त onclick होगा)।

उदाहरण के लिए:

<a href="javascript:someFunction();">Blah</a>

बजाय:

<a href="" onclick="someFunction();">Blah</a>

इसे ईवेंट हैंडलर में उपयोग नहीं किया जाना चाहिए (हालांकि अधिकांश ब्राउज़र कार्यस्थल पर काम करते हैं, और आपको सज़ा नहीं देंगे)। मैं यह तर्क भी दूंगा कि यह एंकर की href विशेषता में उपयोग नहीं किया जाना चाहिए यदि कोई ब्राउज़र जावास्क्रिप्ट का समर्थन करता है, तो वह ठीक से निर्धारित ईवेंट हैंडलर का उपयोग करेगा। यदि कोई ब्राउज़र नहीं करता है, तो एक जावास्क्रिप्ट: लिंक टूट जाएगा। आईएमओ, यह उन बातों को इंगित करने के लिए बेहतर है कि उन्हें कार्यक्षमता का उपयोग करने के लिए जावास्क्रिप्ट को सक्षम करने की आवश्यकता है, या बेहतर कार्यशीलता का गैर-जावास्क्रिप्ट आवश्यक संस्करण अभी भी है। तो, कुछ ऐसा:

<a href="non-ajax.html" onclick="niftyAjax(); return false;">Ajax me</a>

संपादित करें: जावास्क्रिप्ट का उपयोग करने का एक अच्छा कारण है: बुकमार्कलेट। उदाहरण के लिए, यह एक आपको एक पृष्ठ के लिए आरएसएस फ़ीड देखने के लिए Google रीडर को भेजता है:

var b=document.body;
if(b&&!document.xmlVersion){
  void(z=document.createElement('script'));
  void(z.src='http://www.google.com/reader/ui/subscribe-bookmarklet.js');
  void(b.appendChild(z));
}else{
  location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href)
}

एक उपयोगकर्ता को आसानी से इस बुकमार्कलेट को जोड़ने के लिए, आप इसे इस तरह प्रारूपित करेंगे:

<a href="javascript:var%20b=document.body;if(b&&!document.xmlVersion){void(z=document.createElement('script'));void(z.src='http://www.google.com/reader/ui/subscribe-bookmarklet.js');void(b.appendChild(z));}else{location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href)}">Drag this to your bookmarks, or right click and bookmark it!</a>




javascript