除非重新加载页面,否则LaTeX不会转换为Math Text

时间:2014-04-29 14:45:58

标签: javascript jquery html ajax latex

我正在使用mimetex.cgi将LaTeX文本转换为数学文本。我将以下内容放在头标记中

<head>
    <script src="../../asciimath/js/ASCIIMathMLwFallback.js" type="text/javascript">    
    </script>
    <script type="text/javascript">
        var AScgiloc = '../../includes/svgimg.php';
        var AMTcgiloc = "http://www.imathas.com/cgi-bin/mimetex.cgi";
    </script>
</head>

在body标签中,我有以下由ajax刷新的div。这包含数学文本。

<div id="mathtext"> .... </div>

我面临的问题:
在第一页上加载mathtext div中的LaTeX代码将转换为Math Text图像。但是,当div使用ajax加载新的LaTeX代码时,它不会转换为Math Text。
如果我点击刷新,LaTeX会再次转换为MathText。

我不确定我在这里做错了什么。

编辑1:包含作为ASCIIMathMLwFallback.js一部分的onload函数

if(typeof window.addEventListener != 'undefined')
 {
  //.. gecko, safari, konqueror and standard
  window.addEventListener('load', generic, false);
 }
else if(typeof document.addEventListener != 'undefined')
 {
  //.. opera 7
  document.addEventListener('load', generic, false);
 }
 else if(typeof window.attachEvent != 'undefined')
 {
  //.. win/ie
  window.attachEvent('onload', generic);
  }
  //** remove this condition to degrade older browsers
 else
  {
   //.. mac/ie5 and anything else that gets this far
   //if there's an existing onload function
   if(typeof window.onload == 'function')
   {
     //store it
    var existing = onload;
    //add new onload handler
   window.onload = function()
    {
      //call existing onload function
      existing();
      //call generic onload function
      generic();
    };
   }
 else
   {
   //setup onload function
    window.onload = generic;
    }
 }

if (checkForMathML) {
      checkForMathML = false;
      var nd = AMisMathMLavailable();
      AMnoMathML = (nd != null);
  }

它使用上面的函数调用一个函数generic()...我想如果我在ajax查询结束时调用这个函数会怎么做?

1 个答案:

答案 0 :(得分:0)

解决了! ASCIIMathMLwFallback.js有一个名为generic()的函数,它在页面加载时被调用。这个函数将Latex转换为数学函数。

为了使用ajax查询将latex转换为math函数,只需通过将以下内容添加到ajax代码中来调用泛型函数。

generic.call();

这将确保所有Latex都转换为数学!!