2010-09-01 8 views
11

मैं गतिशील की तरह एक मौजूदा स्क्रिप्ट तत्व कुछ करने के लिए जावास्क्रिप्ट को जोड़ना चाहते हैं गतिशील रूप से जावास्क्रिप्ट जोड़ सकते हैं? यदि नहीं, तो मैं इसे सही तरीके से कैसे कर सकता हूं?मैं एक मौजूदा स्क्रिप्ट तत्व

+2

मैं इसे करने की कोशिश की, ('document.getElementsByTagName ('सिर') के साथ पहली बार के लिए' '

2

innerHTML का उपयोग कर तो टूट जाएगा यदि पाठ में कुछ भी शामिल है जिसे HTML के रूप में व्याख्या किया जा सकता है जैसे <। बेहतर होगा एक (या अधिक) जोड़ने के लिए पाठ नोड्स होगा:

var se = document.createElement('script'); 
se.setAttribute('type', 'text/javascript'); 
se.appendChild(document.createTextNode('alert(1)')); 
document.getElementsByTagName('head').item(0).appendChild(se); 
17

सभी ब्राउज़र वर्तमान में जावास्क्रिप्ट टेक्स्ट संपत्ति का समर्थन करते हैं, और दस्तावेज़ में एक नया स्क्रिप्ट तत्व (बिना किसी स्रोत विशेषता के) टेक्स्ट को मूल्यांकन करते समय पाठ का मूल्यांकन करेंगे।

आंतरिक HTML या किसी स्क्रिप्ट तत्व में बाल नोड जोड़ने से सभी ब्राउज़रों में स्क्रिप्ट का मूल्यांकन नहीं होता है।

function addCode(code){ 
    var JS= document.createElement('script'); 
    JS.text= code; 
    document.body.appendChild(JS); 
} 

// परीक्षण का मामला

var s= 'document.body.ondblclick=function(e){\n'+ 
'e=window.event? event.srcElement:e.target;\n'+ 
'alert(e.id || e.tagName);\n'+ 
'}\nalert("ready to double click!");'; 

addCode(s); 
+1

बहुत बढ़िया !!! अच्छी तरह से काम! –

+0

बेकार ढंग से काम करता है जब मेरे पृष्ठों पर कोड इंजेक्शन करने के सभी अन्य तरीकों (लोड होने के बाद) असफल रहा !!! –

संबंधित मुद्दे