Javascript 允许特定的<;脚本>;编辑器中的标记

Javascript 允许特定的<;脚本>;编辑器中的标记,javascript,ckeditor,mathjax,Javascript,Ckeditor,Mathjax,我使用的是DotNetBlogEngine,为了发布数学公式,我想使用MathJax,这是一个JS组件,它使嵌入LaTeX代码变得非常简单,如下所示: <script type="math/tex; mode=display"> \sum_{n=1}^\infty {1\over n^2} = {\pi^2\over 6} </script> <script type="text/javascript">// <![CDATA[ \su

我使用的是DotNetBlogEngine,为了发布数学公式,我想使用MathJax,这是一个JS组件,它使嵌入LaTeX代码变得非常简单,如下所示:

<script type="math/tex; mode=display">
  \sum_{n=1}^\infty {1\over n^2} = {\pi^2\over 6}
</script>
<script type="text/javascript">// <![CDATA[
      \sum_{n=1}^\infty {1\over n^2} = {\pi^2\over 6}

// ]]></script>

\求和{n=1}^\infty{1\over n^2}={\pi^2\over 6}
我的问题是,当我将HTML代码放在CKEditor的de Code视图中或将其保存并重新打开时,它看起来如下所示:

<script type="math/tex; mode=display">
  \sum_{n=1}^\infty {1\over n^2} = {\pi^2\over 6}
</script>
<script type="text/javascript">// <![CDATA[
      \sum_{n=1}^\infty {1\over n^2} = {\pi^2\over 6}

// ]]></script>
//

我认为这是出于安全考虑。是否有一种方法允许使用类型为
math/tex
的脚本标记?

我已经在上的演示中测试了示例代码,但没有看到脚本的内容或属性有任何更改

我已经测试了Firefox、Chrome和IE9

您确定问题出在CKEditor上,而不是您的服务器上的某个东西,或者您添加的某个插件吗?

好的,解决方案是这样的

  • 在第二次查看MathJax文档后,我发现我可以像我的问题一样使用
    脚本
    -标记嵌入数学,但也可以使用Latex数学块表示法
    \[\]
    。例如:

    \[x{1,2}=\left(\frac{p}{2}\right)\pm\sqrt{\left(\frac{p}{2}\right)^2-q}]

  • 它起作用了

  • 可以使用WSIWYG编辑器插件(比如wiris.com/portal/plugins/demo/tinymce/aspx)解决问题,这些插件生成png图片并引用它们。它们的质量不如MathJax

  • 首先,使用MathJax的功劳——我非常喜欢它。其次,为什么不(而不是让用户写出脚本标记)使用LaTeX样式的分隔符(
    $
    )并将它们替换为HTML对应的服务器端?不,那些
    块与您所考虑的安全性无关。这些被添加,大概是因为它是一个XHTML DOCTYPE(可能是因为LaTeX?),并且您必须将
    script
    标记数据标记为字符数据(
    CDATA
    )块,这样
    和实体之类的东西就不会戳到解析器的眼睛了。@JimO'Brien:很好,我还没有考虑到这种可能性。我同意,它不必显式地出现在
    script
    标记中,只要它保持在一起。另一方面,大约一周前,我看到一个非常好的基于网络的数学公式编辑器…@JaredFarrish:如果我理解你的第一句话,我就不是舒尔。似乎很清楚,这不适用于sec。你的意思是我可以在CDATA标签中嵌入乳胶吗?但是不管怎样,类型属性get被替换了。它是一个插件,它是MathJax插件。真丢脸!dotnetblog引擎不使用CKEditor,而是使用TinyMCE。我可以哭我花了几个小时在错误的文件上。无论如何,即使在TinyMCE演示中,get类型也没有被替换,我将查看服务器side@john84-什么?!?!我知道TinyMCE有个编辑,因为我上周看到了。。。唉。