如果不支持svg,则回退到html-css

时间:2013-09-12 13:19:45

标签: javascript svg mathjax mathml

我正在使用MathJax在浏览器中呈现mathml标记。我使用TeX-AMS-MML_SVG配置在Chrome中运行良好,但这在IE8中不起作用。

如果我切换到TeX-AMS-MML_HTMLorMML,它在所有浏览器中都能正常工作。然而,SVG渲染看起来好多了,所以在可能的情况下我希望它更受欢迎。

MathJax有内置任何东西来支持这个吗?它似乎可以从MML回退到HTML而不是SVG到HTML。我可以通过javascript检查SVG支持,但我希望MathJax配置中已经存在一些我缺少的东西。

以下是common configurations的文档。我正在寻找类似MML_SVGorHTML配置的东西。

3 个答案:

答案 0 :(得分:1)

请参阅MathJax User's Forum上有关描述方法的讨论。基本上,

    <script type="text/x-mathjax-config">
    if (MathJax.Hub.Browser.isMSIE && (document.documentMode||0) < 9) {
      MathJax.Hub.Register.StartupHook("End Config",function () {
        var settings = MathJax.Hub.config.menuSettings;
        if (!settings.renderer) {settings.renderer = "HTML-CSS"}
      });
    }
    </script>

负责旧版本的IE,这是目前唯一没有进行SVG的浏览器。

答案 1 :(得分:1)

我目前正在测试此方法,该方法是手动检查svg支持:

function supportsSvg() {
    return !!document.createElementNS && 
        !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect;
}

var mathjaxConfig = (supportsSvg()) ? 'TeX-AMS-MML_SVG' : 'MML_HTMLorMML';

然后你可以将mathjaxConfig正常插入url:

"../MathJax.js?config=" + mathjaxConfig

答案 2 :(得分:-1)

您可以使用Walter Zorn's drawing library。它将所有内容呈现为DIV。