2012-06-22 17 views
18

के लिए src विशेषता सेट करने के लिए जेएस चर का उपयोग करें, मैं एक javascript चर का उपयोग उसी jsp पर किसी अन्य टैग के लिए 'src' विशेषता के रूप में करना चाहता हूं।<script> टैग

<script> 
var link = mylink // the link is generated based on some code 
</script> 

मैं नीचे दिखाए गए इस नए तत्व को बनाना चाहता हूं।

<script src="mylink"> 
</script> 

विभिन्न मंचों को खोजने पर, मैंने निम्नलिखित विकल्पों का उपयोग करने का प्रयास किया है लेकिन वे काम नहीं कर रहे हैं। मैं यह काम सभी प्रमुख ब्राउज़रों पर काम करना चाहता हूं।

  1. इस कोड को पहले तत्व में रखें।

    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = "path/to/somelink"; 
    document.body.appendChild(script); 
    
  2. पहले तत्व में दस्तावेज़ लेखन विधि का उपयोग करें।

    document.write("<script type='text/javascript' src="+ google.com + "><\/script>"); 
    
  3. पहले तत्व में जेएसटीएल वैरिएबल सेट करने और इसका उपयोग करने का प्रयास किया।

    <c:set var="URL" value="mylink"/> 
    

इन तरीकों में से कोई भी सफल रहे थे। क्या गलत हो रहा है पर कोई सुझाव?

+1

एक आम उपयोगिता बुलाया require.js लोड हो रहा है स्क्रिप्ट है। यह सिंक्रोनस कॉल एसिंक्रोनस बनाकर स्क्रिप्ट लोडिंग और निर्भरताओं को अनुकूलित करता है। यह ब्याज का हो सकता है। –

+0

यदि आपको कोई जवाब मिला है, तो आपको समाधानों में से एक स्वीकार करना चाहिए। :) या वह उत्तर प्रदान करें जो आपको उपयोगी लगता है। – Mahesh

उत्तर

4

मैं पसंद दो के समान कुछ उपयोग करता हूं। आपके कोड में थोड़ी गलती है क्योंकि "google.com" को उद्धरणों से घिरा होना चाहिए।

document.write("<script type='text/javascript' src='"+ x + "'><\/scr" + "ipt>"); 

इस स्थिति में, x फ़ाइल शामिल किया जाना होगा:

संगतता सुधारने के लिए, आप के रूप में यह लिखने के लिए चाहते हो सकता है।

var x = "http://google.com/script.js"; 

या

var x = "path/to/script.js"; 
+0

मैंने उद्धरण के साथ इस तरह से प्रयास किया, लेकिन यह काम नहीं कर रहा है, स्रोत कोड में लिपि को जोड़ा जा सकता है। यह भी समझ में नहीं आया कि आप क्यों कहते हैं कि हमें इसे ''><\/scr "+" ipt> "जैसा करना है? कोई महत्व क्यों हम यहां सम्मिलित हैं? – 1985percy

+0

कुछ ब्राउज़र, विशेष रूप से इंटरनेट एक्सप्लोरर के पुराने संस्करण, सोचते हैं कि यह '

2

प्रयास करें:

(function(d){ 
    var file = 'yourJS.js'; 
    var ref = d.getElementsByTagName('script')[0]; 
    var js = d.createElement('script'); 
    js.src = file; 
    ref.parentNode.insertBefore(js, ref); 
}(document)); 

इस क्या करता है:

  1. अपने पृष्ठ
  2. पर पहले स्क्रिप्ट तत्व का पता लगाएं आप के रूप में यह परिभाषित कर सकते हैं
  3. आपके आपूर्ति किए गए स्रोत के साथ एक नया स्क्रिप्ट तत्व बनाता है।
  4. फिर पहले मौजूदा स्क्रिप्ट तत्व से पहले नया तत्व डालें।
3

क्या आप jQuery का उपयोग करने में सक्षम हैं? ताकि आप getScript() इस्तेमाल कर सकते हैं, तो:

http://api.jquery.com/jQuery.getScript/

$.getScript(mylink, function() { 
    // do something using the JS that was loaded. 
}); 
12

हालांकि CDATA ठीक काम करता है, का उपयोग कर document.createElement भी एक शानदार विकल्प है .. विशेष रूप से यदि आप एक URL में कुछ मूल्य संलग्न करने के लिए करना चाहते हैं, कैश के लिए कहते हैं पर्दाफाश ..

<script type="text/javascript"> 
    var JSLink = "/Folder/sub_folder/version.js?version=" + Math.random(); 
    var JSElement = document.createElement('script'); 
    JSElement.src = JSLink; 
    JSElement.onload = OnceLoaded; 
    document.getElementsByTagName('head')[0].appendChild(JSElement); 

    function OnceLoaded() { 
     // Once loaded.. load other JS or CSS or call objects of version.js 
    } 
</script> 

कोड अच्छी तरह से .. :)

+0

अगर मुझे एकाधिक जेएस फाइलों को लोड करने की आवश्यकता है तो कैसे बाउट करें। क्या कोई विशिष्ट वाक्यविन्यास है, या क्या मुझे इस पूरे स्क्रिप्ट को लूप करना है ?? धन्यवाद !! – ChickenWing24

+0

संपूर्ण लिपि लूप .. आपके द्वारा लिखे गए किसी भी कोड मूल रूप से ऐसा करेंगे। देर से प्रतिक्रिया व्यक्त करने के लिए क्षमा करें। – Mahesh

+0

कोई चिंता नहीं आदमी। धन्यवाद! : डी – ChickenWing24

0
<xsl:variable name="Path" select="/root/folder/"></xsl:variable> <!-- Global path variable. --> 
<xsl:variable name="myScriptPath" select="concat($Path, 'myScript.js')"></xsl:variable> <!-- Relative script path variable. --> 
<script src="{$myScriptPath}"/> <!-- Attach script. -->