यह भी मुझे थोड़ा के लिए भी stymied था। यह पता चला है कि आईई सीधे जेएसएल को आंतरिक HTML के माध्यम से सम्मिलित करने की अनुमति नहीं देता है जब तक कि आप 'defer' प्रॉपर्टी को शामिल न करें (नीचे दूसरा लिंक देखें)। यह संपत्ति आईई के लिए अद्वितीय है और जाहिर है कि आईई को अन्य मार्कअप लोड होने के बाद तक किसी भी जेएस के निष्पादन को स्थगित करने की अनुमति मिलती है। एक चेतावनी, यद्यपि ... यदि आप दो स्क्रिप्ट टैग (जैसे मैंने किया) शामिल करते हैं, तो कोई गारंटी नहीं है कि कोई पहले निष्पादित करेगा, क्योंकि स्क्रिप्ट को असीमित रूप से लोड किया जा रहा है। यह केवल एक समस्या होनी चाहिए यदि आपकी स्क्रिप्ट एक-दूसरे पर निर्भर हैं (जैसा कि मेरा था)।
एक अतिरिक्त चेतावनी भी है ... आपको स्क्रिप्ट डालने के साथ ही गैर-स्क्रिप्ट मार्कअप डालना होगा। मैं 'defer' संपत्ति के साथ या उसके बिना, स्क्रिप्ट टैग को स्वयं से सम्मिलित करने में असमर्थ था। अंत में, स्क्रिप्ट टैग को अन्य सभी गैर-स्क्रिप्ट मार्कअप डालने के बाद रखा जाना चाहिए। अन्यथा, स्क्रिप्ट टैग डाले गए HTML से अलग हो जाते हैं।,
http://msdn.microsoft.com/en-us/library/ms533719%28v=vs.85%29.aspx
कोड के माध्यम से स्क्रिप्ट सम्मिलित का उदाहरण (हाँ:
एमएस innerHTML संदर्भ::
http://msdn.microsoft.com/en-us/library/ms533897%28v=vs.85%29.aspx
एमएस आस्थगित करें संपत्ति संदर्भ
यहाँ कुछ संदर्भ हैं यह वास्तव में काम करता है):
http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/insertScript_2.htm
मेरे टेस्ट कोड:
// I downloaded the MS example file above and tweaked their script a bit,
// resulting in this. Using the proper approach to the defer property
// (namely: defer="defer") did not provide me with consistent results, so
// sticking with 'DEFER' may be necessary.
// Note: Try moving the 'sHTML' variable to the end of the script string.
function insertScript2()
{
var sHTML="<input type=button onclick=" + "go2()" + " value='Click Me'><BR>";
var sScript = sHTML + "<SCRIPT DEFER type='text/javascript'> function go2(){ alert('Hello from inserted script.') } </SCRIPT" + ">";
ScriptDiv.innerHTML = sScript;
}
(+1) अच्छा सवाल से बच चार का उपयोग करने की जरूरत है। पहले विकल्प के लिए –