जवाबों:
अलग-अलग ब्राउज़र इसे अलग तरह से मानते हैं। कुछ सामग्री को केवल तभी चलाते हैं जब वह srcत्रुटि के बिना शामिल हो। कुछ इसे srcस्क्रिप्ट में शामिल करने के प्रयास के बाद चलाते हैं , सफलता की परवाह किए बिना। चूंकि यह व्यवहार अविश्वसनीय है (और HTML5 में निषिद्ध है ), इसलिए इसे टाला जाना चाहिए।
Google किसी विशिष्ट व्यवहार का भरोसा नहीं कर रहा है। चूंकि सामग्री सिर्फ एक वस्तु शाब्दिक (एक मूल्य) है, इसे निष्पादित करना वास्तव में एक मौन त्रुटि के अलावा कुछ भी नहीं करेगा। Google का कोड scriptटैग की सामग्री को स्वयं देखता है, और उसके आधार पर उसके व्यवहार को समायोजित करता है।
srcविशेषता मौजूद है, तो स्क्रिप्ट सामग्री को कभी निष्पादित नहीं किया जाएगा , और वास्तव में वास्तव में एक वस्तु शाब्दिक नहीं है, यह कोड एक SyntaxErrorनिष्पादित होने पर उत्पादन करेगा , यह बस "JSON पाठ" है जो स्क्रिप्ट का उपयोग करेगा बाद में खुद से।
s=document.getElementsByTagName('script'); text = s[s.length-1].innerHTML; मुझे नहीं लगता कि स्क्रिप्ट नोड की सामग्री लाने का कोई तरीका है जो DOM को छूना शामिल नहीं करता है। ।
यदि किसी स्क्रिप्ट तत्व में src विशेषता है, तो सामग्री को अनदेखा किया जाना चाहिए, कोई भी अन्य व्यवहार गैर-अनुरूप नहीं है।
यह ब्लॉग में सुझाव दिया गया है (एक हैक के रूप में) यह जानने के लिए कि इसका मूल्यांकन नहीं किया जाएगा, तत्व में सामग्री डालने के लिए, फिर सामग्री को स्ट्रिंग के रूप में प्राप्त करने के लिए DOM तरीकों का उपयोग करें और या तो इसे खाली करें या इसे एक नए स्क्रिप्ट तत्व में डालें। इनमें से कोई भी एक अच्छा विचार नहीं है।
HTML5 ड्राफ्ट विनिर्देश के अनुसार , विशेषताओं वाले <script>तत्वों में srcकेवल टिप्पणी-आउट कोड होना चाहिए, जिसका उद्देश्य स्क्रिप्ट के लिए दस्तावेज़ देना है। ऐसा नहीं लगता कि Google इस विनिर्देश के अनुरूप है।
स्क्रिप्ट लोड होने के बाद, यह अपनी सामग्री तक पहुंचने के लिए अपने स्क्रिप्ट टैग के अंदर दिखता है।
यह इस तरह से कुछ कोड का उपयोग करेगा:
var scripts = document.getElementsByTagName("script");
var data = eval(scripts[scripts.length - 1].innerHTML);
जॉन रेजिग के सौजन्य से ।