Можно ли включить раздел CDATA в фрагмент HTML-кода VS 2010? - PullRequest
3 голосов
/ 16 декабря 2010

При использовании «сценария» HTML-фрагмента в VS 2010 я получаю:

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

Я бы хотел, чтобы фрагмент вывел следующий результат:

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

//]]>
</script>

Я смотрел нафайл .snippet для этого и обнаружил следующий элемент «Код»:

    <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, чем я, знает, выполнимо ли это?

Ответы [ 3 ]

2 голосов
/ 14 марта 2011

Я нашел решение, которое вы искали в своем фрагменте, просто сделайте это.

0 голосов
/ 17 февраля 2012

Чтобы отобразить раздел CDATA в элементе кода фрагмента VS, необходимо отказаться от раздела CDATA элемента Code, который обычно используется, и экранировать весь контент.Если вы попытаетесь закодировать только первую часть, механизм сниппета распознает первый неоткрытый раздел CDATA и не отобразит его.

В вашем случае элемент кода фрагмента должен выглядеть следующим образом (при условии, что у вас определен параметр $ script $):

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

Это приведет к следующему результату

<script type="text/javascript">
    //<![CDATA[
        script goes here
    //]]>
</script>
0 голосов
/ 16 декабря 2010

Из w3schools : 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>

Возможно, вы захотите поэкспериментировать с этим;как я уже сказал, я не уверен, как это будет рассматриваться в конце концов.

...