IE 11和MathJax的问题​​> 2.3(是:在Internet Explorer中由斜杠启动的URL失败)

时间:2015-03-30 10:29:55

标签: internet-explorer mathjax

编辑:以下问题是由两个页面之间的唯一区别提示的,一个正常工作而另一个不正常;请参阅下面的答案。

似乎IE(至少版本11和12)不接受诸如

之类的URL
/a/b.js

用于上下文

<script type="text/javascript" src="/a/b.js"></script>

如果不使用表格的网址

,我将不胜感激如何避免此问题
http://somedomain/a/b.js

(不使用它的原因是某些浏览器接受,例如,

xyz

含义

http://www.xyz

然后通过错误地应用同源策略来阻止使用从最后一行开始的URL的资源。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我提出这个问题是因为在使用斜杠启动的网址的网页中存在问题,但在使用完整网址的类似网页中没有问题。感谢@CBroe的评论,经过更多测试后,现在很清楚,检测到的问题不是由URL中使用的语法引起的。相反问题是IE(至少版本11和12)不会在某些页面中呈现MathJax公式,而不是在所有页面中呈现MathJax公式,并且有时但是并不总是使用相同的页面,在正确的情况下会出现JS语法错误言。

更新:在获得MathJax团队的Peter Krautzberger和David Cervone(https://groups.google.com/forum/#!topic/mathjax-users/hTq9MxEVYI0)的更多帮助后,更多测试的结论如下

  1. 大约一年前使用MathJax 2.2进行测试时,问题没有出现; IE的自动更新和/或MathJax从2.2到2.4和2.5.1的更改导致它发生
  2. 问题产生于MathJax配置在页面中给出为
    <script type="text/x-mathjax-config"> <!-- MathJax.Hub.Config({ ... }); --> </script> 而页面中的所有其他脚本,也使用HTML注释 同样的分隔符,按预期工作
  3. 这些注释分隔符用于隐藏脚本内容,特别是使用W3C标记验证器,但

    • 结束HTML评论分隔符应该是 在W3C HTML 4.01 TR 18.3.2中描述的Javascript注释中 [1999](我不能发布2个以上的链接...) 但这并没有解决问题
    • 这些页面是在XHTML 1.0中而不是这些分隔符 代码应该在CDATA部分,即在 //<![CDATA[ ... //]]>
      (见When is a CDATA section necessary within a script tag?) 这解决了问题

  4. 避免此问题的另一种方法是将MathJax配置放在一个文件中,该文件的URI在脚本的“src”属性中给出(type="text/javascript");文件内容不需要HTML注释或CDATA部分;必须使用MathJax配置的新语法,即window.MathJax对象的赋值。
  5. 后者是首选的解决方案,因为虽然在XHTML 1.0中,页面作为HTML提供,但是分隔符的选择变得复杂;只要遵循一些兼容性规则,将XHTML作为HTML提供即可,请参阅W3C关于提供XHTML(概述)和XHTML 1.0 TR兼容性指南的文章(同样,我不能发布超过2个链接)