2

これが私の簡単なHTMLコードです

<html>
<head>
<script type="text/javascript"
 src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script>
function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
</script>
</head>
<body>
<p>This is the line that load correct  \[ \frac{x+y}{z} \]</p>
<p id="step1"></p>
<script>
var x = gup('x');
var y = gup('y');
var z = gup('z');
var text = "This is the line that NOT show correct" + "\[ \frac{" + x + " + " + y + "}{" + z +"}\]";
document.getElementById("step1").innerHTML= text;
</script>
</body>
</html>

このhtmlファイルをロードし、次のようなURLでパラメータを送信すると

sample.html?x=1&y=2&z=3

最初の文は正しい形式と負荷を示していますMathjaxが、2番目の文はそうではありません。これはMathjax、Javaスクリプトコードの前にロードするためです。Mathjax後でロードする方法を知っていますかJavascript

4

2 に答える 2

2

コールバックでJavaScriptローダーを使用して、MathJaxをロードし、コールバックでコードを実行してみてください。たとえば、https://github.com/niftylettuce/javascript-async-callbackを参照してください。

編集:

<html>
<head>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script>
function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
</script>

<script>
$(function() {
  var x = gup('x');
  var y = gup('y');
  var z = gup('z');
  var text = "This is the line that NOT show correct <-- It's OK now" + "\\[ \\frac{" + x + " + " + y + "}{" + z +"} \\]";
  document.getElementById("step1").innerHTML= text;
});
</script

</head>
<body>
<p>This is the line that load correct  \[ \frac{x+y}{z} \]</p>
<p id="step1"></p>
</body>
</html>
于 2012-09-27T12:42:40.610 に答える
2

MathJaxの実行後に数学を追加するようにドキュメントを変更する場合は、MathJaxに再度実行するように指示する必要があります。あなたはそれを使ってそれをします

<script>
  MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
</script>

詳細については、関連するMathJaxのドキュメントを参照してください。

あなたの場合、これはそれを行う必要があります:

<script>
var x = gup('x');
var y = gup('y');
var z = gup('z');
var text = "This is the line that NOT show correct" + "\[ \frac{" + x + " + " + y + "}{" + z +"}\]";
document.getElementById("step1").innerHTML= text;
MathJax.Hub.Queue(["Typeset",MathJax.Hub,"step1"]);
</script>
于 2012-09-29T18:57:04.983 に答える