मुझे इनरएचटीएमएल के साथ यह समस्या थी, मुझे अपने रिएक्टज एप्लिकेशन के "हेड" टैग के लिए एक हॉटज़र स्क्रिप्ट को संलग्न करना था और इसे ठीक करने के बाद निष्पादित करना होगा।
"हेड" टैग में डायनामिक नोड आयात के लिए अच्छे समाधानों में से एक रिएक्ट-हेलमेंट मॉड्यूल है।
इसके अलावा, प्रस्तावित मुद्दे के लिए एक उपयोगी समाधान है:
आंतरिक HTML में कोई स्क्रिप्ट टैग नहीं!
यह पता चलता है कि एचटीएमएल 5 स्क्रिप्ट टैग को आंतरिक HTML संपत्ति का उपयोग करके गतिशील रूप से जोड़ने की अनुमति नहीं देता है। तो निम्नलिखित कार्य नहीं करेगा और हैलो वर्ल्ड कहे जाने वाला कोई अलर्ट नहीं होगा!
element.innerHTML = "<script>alert('Hello World!')</script>";
यह HTML5 कल्पना में प्रलेखित है:
नोट: इनर HTML का उपयोग करके डाले गए स्क्रिप्ट तत्व निष्पादित होने पर निष्पादित नहीं होते हैं।
लेकिन सावधान रहना, इसका मतलब यह नहीं है कि इनर HTML क्रॉस-साइट स्क्रिप्टिंग से सुरक्षित है। एमडीएन के इनरटीएमएल पेज पर सचित्र टैग्स का उपयोग किए बिना ही आंतरिक HTML के जरिए जावास्क्रिप्ट को निष्पादित करना संभव है ।
समाधान: गतिशील रूप से स्क्रिप्ट जोड़ना
स्क्रिप्ट टैग को गतिशील रूप से जोड़ने के लिए, आपको एक नया स्क्रिप्ट तत्व बनाना होगा और उसे लक्ष्य तत्व में जोड़ना होगा।
आप बाहरी स्क्रिप्ट के लिए ऐसा कर सकते हैं:
var newScript = document.createElement("script");
newScript.src = "http://www.example.com/my-script.js";
target.appendChild(newScript);
और इनलाइन स्क्रिप्ट:
var newScript = document.createElement("script");
var inlineScript = document.createTextNode("alert('Hello World!');");
newScript.appendChild(inlineScript);
target.appendChild(newScript);