2010-12-16 3 views
3

VS 2010でHTMLスニペット「スクリプト」を使用して私が手:私は.snippetファイルを見てきましたVS 2010のHTMLスニペットにCDATAセクションを含めることはできますか?

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

//]]> 
</script> 

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

は、私は次の結果をレンダリングするスニペットを希望しますこの、次の「コード」要素が見つかりました:

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

をし、これにはない、つまり、私は、この作業を取得するために少しトリッキーかもしれません実現:

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

これは実行可能であれば、私よりももう少しXML知識がある人は知っていますか? w3schoolsから

+0

を生成します

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

あなたのケースでは、スニペットコード要素は、(あなたが定義した$スクリプト$パラメータを持っていると仮定して)次のようになります。このCDATAシーケンスがベストプラクティスと標準準拠として認識されているように見えるので、このスクリプトのコードスニペットを挿入してください。 – eniac

答えて

0

Nested CDATA sections are not allowed.

しかし、それは興味深い質問です。

編集: 以下は、物事のXML(抜粋)側から動作しますが、私は結果は、ブラウザによって解釈されるかどうかはわかりません。

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

(スラッシュに注意してくださいこれは、次のような出力を生成します閉じるキャレット前)

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

//]]/> 
</script> 

をこれが何かかもしれあなたは実験したいです。私が言ったように、私は最終的にどのように扱われるのかは不明です。

+0

私はこれを動作させることができませんし、cdata _within_スクリプトタグを持たないコード要素がどのようにその出力を生成するのか理解できません。 –

+0

@Dan:それは申し訳ありません。元の編集を投稿したときに間違ったセクションをコピーしました。私はそれをもう一度編集しました。(うまくいけば)今すぐ動作します:-)。混乱させて申し訳ありません。 –

2

スニペットで探していた解決策が見つかりました。

<コード言語= "HTML" >

<![CDATA [<スクリプトタイプ= "テキスト/ javascriptの" >
<![CDATA [
$選択$] $エンド$ >
< /スクリプト>] >

< /コード> VSスニペットコード要素内のCDATAセクションをレンダリングするために

0

、あなたが通常使用されているコード要素のCDATAセクションを放棄し、全体のコンテンツをエスケープする必要があります。最初の部分だけをエンコードしようとすると、スニペットエンジンはエスケープされていない最初のCDATAセクションを認識し、それをレンダリングしません。私も希望の結果は次のとおり

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

最後にこれを試してみました。それは動作しません。 <スクリプト> // < [CDATA [//]] > < /スクリプト> すなわち:!スニペットを使用しているとき、私はこれを取得($スクリプト$は、スニペットの定義で$エンド$に置き換えられます) </>はそのままで、スニペットには改行がありません。 –

+0

フィードバックありがとうございます。これはうまくいきます - あるいは少なくとも私が当時使っていたバージョンのVSでもそうでした。私はそれを答えとして提供する前にそれを複数回テストしました。あなたの要件を誤解している可能性があります。 –

関連する問題