MathJax:适用于桌面浏览器,但仅在伪造用户代理时有效;适用于移动浏览器

MathJax: works in desktop browsers, but only when faking user-agent; works on mobile browsers

所以,我有这个页面(Wordpress 博客的一部分), http://gnuradio.org/blog/filtering-time-series-data__elemental-building-blocks/ ,其中 应该 包含我的 LaTeX 公式的渲染,完全像:

当我将桌面的 Firefox 配置为假装其用户代理是 Android

上的 Firefox 运行 时,它的作用相同(有效!)

可悲的是,如果不强迫我的 firefox 声明其用户代理字符串是 IPhone 3 的字符串,公式就永远不会呈现; MathJax 显示它是典型的 "initialization messages",但在这些出现之前很久,"raw" LaTeX 公式就消失了,再也不会呈现:

现在,奇怪的是:它也不适用于 Linux 下的 Chrome,而且我有一个朋友报告了与 Safari/OS 相同的问题X 但在 Android 设备上使用 Firefox,它可以工作 like a charm。

Chrome on Android也是如此。

所以,我尝试调试了一些东西,但我还没有超出以下范围:

根本不是 Web 开发人员,这就是我所达到的程度。因此,同样欢迎关于调试/使用什么来调试这个问题的提示或解决我的问题的明确答案。

问题是您的页面正在加载修改页面中脚本元素的代码(http://gnuradio.org/cdn-cgi/nexp/dok3v=1613a3a185/cloudflare/rocket.js,文件中标题为 cloudflarejs-rocketloader-0.11.5。可能是 cloudflare 自动添加了这个,而没有你的知识,但结果是你页面中的脚本元素不再是浏览器实现的标准脚本 DOM 元素,而是这个脚本实现的替换。不幸的是,替换的行为并不相同到原始脚本元素,这导致 MathJax 无法读取数学(存储在页面内的脚本元素中)。

您可以通过添加

来克服这个问题
<script>
MathJax = {
  AuthorInit: function () {
    MathJax.HTML.getScript = function (node) {return node.textContent}
  }
};
</script>

加载MathJax.js本身的脚本之前到您的页面。

或者,尝试 disabling the full CloudFlare optimization