2010-12-16 2 views
3

Wenn der HTML-Snippet "Skript" in VS 2010 ich mit:Kann ich den CDATA-Abschnitt in ein VS 2010-HTML-Snippet einfügen?

<script type="text/javascript"> </script> 

würde ich die Schnipsel wie das folgende Ergebnis zu machen:

<script type="text/javascript"> 
//<![CDATA[ 

//]]> 
</script> 

ich an der .snippet Datei ausgesehen habe für dies und fand das folgenden „Code“ Element:

<Code Language="html"><![CDATA[<script type="text/javascript">$selected$$end$</script>]]></Code> 

und ich erkennen, dass es vielleicht ein bisschen schwierig sein, diese Arbeit zu bekommen, das heißt das nicht:

Hat jemand mit ein bisschen mehr XML-Kenntnisse als ich wissen, ob dies machbar ist?

+0

Ich würde auch produzieren möge Fügen Sie das Script-Code-Snippet ein, um diese CDATA-Sequenz einzuschließen, da sie als Best Practice und standardkonform zu gelten scheint. – eniac

Antwort

0

Von w3schools: Nested CDATA sections are not allowed.

Aber es ist eine interessante Frage.

Edit: Im Folgenden wird aus der XML (Snippet) Seite der Dinge funktionieren, aber ich bin nicht sicher, wie das Ergebnis wird von einem Browser interpretiert werden:

<Code Language="html"><![CDATA[<script type="text/javascript"> 
    //<![CDATA[ 
     $selected$$end$ 
    //]]/> 
</script>]]></Code> 

(beachten Sie den Schrägstrich

vor dem Schließen caret)

Dies wird erzeugt die folgende Ausgabe: etwas seiner

<script type="text/javascript"> 
//<![CDATA[ 

//]]/> 
</script> 

Dies kann mit denen du experimentieren willst; Wie gesagt, ich bin mir nicht sicher, wie es am Ende behandelt wird.

+0

Ich kann das nicht funktionieren und ich verstehe nicht, wie das Codeelement ohne cdata _within_ the script tag diese Ausgabe erzeugen könnte ... –

+0

@Dan: sorry dafür; Ich hatte den falschen Abschnitt kopiert, als ich meine Originalbearbeitung veröffentlicht hatte. Ich habe es nochmal bearbeitet und (hoffentlich) wird es jetzt funktionieren :-). Entschuldigung für die Verwirrung. –

2

Ich fand die Lösung, die Sie in Ihrem Schnipsel suchten, tun Sie das einfach.

< Code Sprache = "html" >

<! [CDATA [< script type = "text/javascript" >
<! [CDATA [
ausgewählt $ $]] $ end $ >
</script >]] >

</Code >

0

Um einen CDATA-Abschnitt in einem VS-Snippet-Code-Element zu machen, Sie den Code Element des CDATA-Abschnitt verzichten müssen, die normalerweise verwendet wird, und den ganzen Inhalt zu entkommen. Wenn Sie versuchen, nur den ersten Teil zu codieren, erkennt die Snippet-Engine den ersten nicht maskierten CDATA-Abschnitt und rendert diesen nicht.

In Ihrem Fall das Snippet-Code-Element soll wie folgt aussehen (vorausgesetzt, Sie einen $ script $ Parameter definiert haben):

<Code Language="html"> 
    &lt;script type=&quot;text/javascript&quot;&gt; 
    //&lt;![CDATA[ 
     $script$ 
    //]]&gt; 
    &lt;/script&gt; 
</Code> 

, dass das folgende Ergebnis

<script type="text/javascript"> 
    //<![CDATA[ 
     script goes here 
    //]]> 
</script> 
+0

Endlich herumgekommen, um das zu testen. Es funktioniert nicht. Ich diese erhalten, wenn das Snippet mit ($ script $ mit $ end $ im Snippet Definition ersetzt): <Skript> // < [CDATA [//]] > </script > D. h! </> sind erhalten, wie es ist und was mehr ist, bekomme ich keine Zeilenumbrüche in das Snippet ... –

+0

Danke für die Rückmeldung. Das funktioniert - oder zumindest mit der Version von VS, die ich damals benutzt habe. Ich habe es mehrmals getestet, bevor ich es als Antwort zur Verfügung gestellt habe. Es ist möglich, dass ich Ihre Anforderung missverstanden habe. –

Verwandte Themen