2011-12-23 16 views
10

मैं एक पुरानी साइट पर काम कर रहा हूं जो जावा और एक्सएसएल का उपयोग करता है। मैं एक xsl फ़ाइल में एक स्क्रिप्ट फ़ाइल कैसे लगा सकता हूं? फ़ाइल के शीर्ष:एक xsl फ़ाइल में स्क्रिप्ट टैग को कैसे शामिल करें?

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:include href="shipmentPackageInfo.xsl"/> 

<script src="/fs/scripts/shipment/shipment.js"></script> 

टूटता एप्लिकेशन

- अद्यतन -

अन्य फ़ाइल कहा जाता pageHeader.xsl जो अंदर की सभी स्क्रिप्ट टैग है नहीं है

<xsl:output method="html"/> 
    <xsl:template match="PageHeaderData"> 

उत्तर

9

यहां एक समाधान प्रतीत होता है:

http://www.webdeveloper.com/forum/archive/index.php/t-20815.html

रखें जावास्क्रिप्ट की तरह नीचे

<script type="text/javascript"> 

<xsl:text> 

javascript here 

</xsl:text> 

</script> 
+0

सरल और उपयोगी, प्रकार के अंत में एक दोहरा उद्धरण चिह्न जोड़ने = "text/जावास्क्रिप्ट –

+0

@contam हो सकता है कि आपको लगता है कि सुझाव देने चाहिए फ़ोरम सदस्य को पोस्ट करने के लिए, क्योंकि यह उनसे सीधा उद्धरण है;) – annonymously

+0

आप सही हैं ... मुझे जांच करने की आवश्यकता है कि फ़ोरम स्रोत कोड किसी अन्य फ़ोरम से चिपकाया गया है :-) –

2

आप किसी टेम्पलेट ब्लॉक के भीतर स्क्रिप्ट टैग डालना होगा या यह टूट जाएगा <xsl:text> टैग कुछ के बीच कोड ...

यानी

<xsl:template match="/"> 
    <script src="/fs/scripts/shipment/shipment.js"></script> 
</xsl:template> 
+0

धन्यवाद Treemonkey के साथ काम करते हैं। मैंने आपके समाधान की कोशिश की लेकिन यह अभी भी br eaks। क्या मुझे के अंदर स्क्रिप्ट की आवश्यकता है? हालांकि आप प्रति पृष्ठ केवल एक आउटपुट विधि हो सकती है? –

+0

तो मुझे लगता है कि मैं मुख्य पृष्ठ हैडर फ़ाइल में स्क्रिप्ट जोड़ सकता हूं और इसे एक मैच में लपेट सकता हूं ताकि स्क्रिप्ट केवल तभी लोड हो जब वह मैच संतुष्ट हो? –

0

संपादित

उसका ई एक समाधान है जो

मानता है कि यह आपका एक्सएसएल है और आपने जैसा बताया है कि आप एक्सएसएल सहित हैं। इस मामले में मैंने इसे include.xsl कहा। मैं सिर्फ हेडर नामक टेम्पलेट को कॉल करता हूं जो जावास्क्रिप्ट संदर्भ को पाइप करता है।

मुख्य XSLT फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0"> 
    <xsl:include href="include.xsl"/> 

    <xsl:template match="/"> 
     <xsl:call-template name="headers"/> 
     <bar> 
      <xsl:value-of select="root"/> 
     </bar> 
    </xsl:template> 
</xsl:stylesheet> 

include.xsl

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0"> 
    <xsl:template name="headers"> 
     <script src="/fs/scripts/shipment/shipment.js"></script> 
    </xsl:template> 
</xsl:stylesheet> 

आउटपुट:

<?xml version="1.0" encoding="utf-8"?> 
<script src="/fs/scripts/shipment/shipment.js"/> 
<bar>foo</bar> 
+0

धन्यवाद। स्क्रीन पर एक स्ट्रिंग के रूप में बस मुद्रित किया गया है –

+0

संपादित और एक अलग कोड, मैंने इसका परीक्षण किया है और यह काम करता है। अनिवार्य रूप से आप केवल एक टेम्पलेट को कॉल कर सकते हैं जिसमें यह है या जावास्क्रिप्ट का एक सेट –

+1

सीडीएटीए का उपयोग करके, मैंने इसका परीक्षण किया है, आप ']]> 'यह फ़ाइल को आउटपुट करेगा –

8

XSLT wont allow me to use self-closing img and br tags

स्व समापन स्क्रिप्ट टैग करने के लिए अपने जवाब पर एक नजर डालें (<script src="code.js"/>) जावास्क्रिप्ट फ़ाइलों को लोड नहीं कर सकता है, इसलिए आपके एक्सएसएलटी के अंदर, आपको स्क्रिप्ट टैग के अंदर कुछ पाठ रखने की आवश्यकता हो सकती है ताकि इसे स्वयं बंद कर दिया जा सके और इसे काम पर लाया जा सके।

<script src="code.js>//</script> 
0
<script type="text/javascript" src="/Scripts/script.js"> 
    <xsl:comment>script</xsl:comment> 
</script> 
5

ओह, मैं इस तरह कार्य करें:

... ... 
     </body> 
<script language="javascript"><![CDATA[ 
var a_patch = function(){ 
    var links = document.getElementsByTagName("a"); 
    for (var i=0; i<links.length; i++){ 
     var link = links[i]; 
     var text = link.innerHTML; 
     ... ... 
    } 
}; 
a_patch(); 
]]></script> 
</html> 
संबंधित मुद्दे