मैंने यह छोटा सा पहेली बनाया: http://jsfiddle.net/NZnN2/। जब मैं बटन पर क्लिक करता हूं तो यह चेतावनी क्यों नहीं उठा रहा है?जावास्क्रिप्ट फ़ंक्शन को "fiddle" में नहीं कहा जा रहा है
उत्तर
क्योंकि आपका जावास्क्रिप्ट कोड onload
हैंडलर में है, जिसका अर्थ है display_message
वैश्विक नहीं है, और इसलिए HTML द्वारा उपलब्ध नहीं है।
जब से तुम onLoad
चयन किया है, आपकी जावास्क्रिप्ट इस तरह पेज में इंजेक्ट किया जाता:
window.addEvent('load', function() {
function display_message(){
alert("woohoo!");
}
});
आप देख सकते हैं, display_message
कि अज्ञात फ़ंक्शन के अंदर ही उपलब्ध है। उदाहरण कार्य करने के लिए, onLoad
से no wrap (head)
या no wrap (body)
(पृष्ठ के बाईं ओर) बदलें।
कार्य उदाहरण: http://jsfiddle.net/NZnN2/8/
दूसरे शब्दों में: यह एक दायरा मुद्दा –
है ... और इसलिए, आपको तरफ ड्रॉपडाउन बदलने की जरूरत है। – SLaks
function display_message() {
alert('woohoo!');
}
कर
display_message = function() {
alert('woohoo!');
}
आप किस ब्राउज़र का उपयोग करते हैं? (गूगल क्रोम पर, यह काम कर रहा है) – Keil
@ बेनीका: वास्तव में नहीं। यह परिवर्तनीय वैश्विक बना देगा, और इसलिए इनलाइन हैंडलर तक पहुंच योग्य होगा। –
@ बेनिका: बिल्कुल नहीं। 'Display_message =' के सामने 'var' के बिना, यह इसे एक वैश्विक चर बना देगा। –
@Rocket के रूप में बताया, आप बाईं पट्टी में बजाय 'ऑनलोड' के 'कोई चादर' सेट करना होगा । – Imp
मैं खो गया हूँ। इस सवाल को इतनी आक्रामक तरीके से क्यों वोट दिया जा रहा है? यह वास्तव में समस्या के बारे में कुछ और बताकर थोड़ा सुधार किया जा सकता है, लेकिन क्या उसे एक पहेली मिल गई है जो उपयोग में आसान है और समस्या को देख रहा है ...? – Beska
प्रश्न में कोई कोड नहीं है, क्या हो रहा है/नहीं हो रहा है, भयानक शीर्षक। – Interrobang