2010-12-16 79 views
3

当在VS 2010中使用HTML代码段“脚本”我得到:我可以在VS 2010 HTML片段中包含CDATA部分吗?

<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知识知道这是否可行?

+0

我也想插入脚本代码片段包含此CDATA序列,因为它似乎被认为是最佳实践并符合标准。 – eniac 2011-02-22 18:58:54

回答

0

w3schoolsNested 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_脚本标记可以产生输出... – 2010-12-19 06:55:52

+0

@丹:对不起,当我发布我的原始编辑时,我复制了错误的部分。我再次编辑它(希望)它现在可以工作:-)。对困惑感到抱歉。 – 2010-12-22 22:07:46

2

我发现你在你的代码片段中寻找的解决方案就是这样做的。

<代码语言= “HTML” >

<![CDATA [<脚本类型= “文/ JavaScript的” >
<![CDATA [
$选择$] $结束$ >
< /脚本>] >

< /代码>

0

为了呈现VS内的CDATA部分代码段元素,你需要放弃这种通常使用的代码元素的CDATA部分和逃逸的全部内容。如果您尝试仅对第一部分进行编码,则代码片段引擎会识别第一个未转义的CDATA部分,并且不会渲染该部分。

在你的情况下,代码段元素应该是这样的(假设你定义了一个$脚本$参数):

<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

终于到处去测试这个。它不起作用。我得到这个使用片断时($脚本$被替换的片段定义$结束$): <脚本> // < [CDATA [//]] > < /脚本> 即! </>保留原样,在片段中我还没有换行符... – 2012-07-16 11:49:32

+0

感谢您的反馈意见。这确实奏效 - 或者至少在我当时使用的VS版本中有效。在提供答案之前,我多次测试过它。我有可能误解了你的要求。 – 2012-09-05 01:38:43

相关问题