Pertanyaan Bagaimana cara mengingat atau me-restart MathJax?


Saya perlu MathJax untuk mengecek kembali semua halaman saya.

Maksud saya saat halaman dibuat, semuanya bagus. Tapi saya harus memanggilnya setelah window.onload untuk mem-retars halaman, karena isinya telah berubah untuk sementara.

Bagaimana saya melakukan hal seperti itu?


32
2018-03-04 23:51


asal


Jawaban:


Lihat http://docs.mathjax.org/en/latest/typeset.html:

Jika Anda menulis halaman web dinamis   di mana konten yang mengandung matematika   mungkin muncul setelah MathJax sudah   mengeset sisa halaman, lalu Anda   perlu memberi tahu MathJax untuk mencari   matematika di halaman lagi saat   bahwa konten baru diproduksi. Melakukan   itu, Anda perlu menggunakan    MathJax.Hub.Typeset() metode. Ini   akan menyebabkan preprosesor (jika ada   dimuat) untuk menjalankan halaman   lagi, dan kemudian MathJax akan mencari   matematika yang belum diolah pada halaman   dan mengesetnya, meninggalkan apa pun yang tidak berubah   matematika yang sudah diurutkan.

Anda seharusnya tidak langsung memanggil metode ini secara langsung. [Sebaiknya Anda] antri tindakan mengeset, [menggunakan ini] perintah:

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);

Demo di sini: http://cdn.mathjax.org/mathjax/latest/test/sample-dynamic.html


38
2018-03-04 23:56



Saya menemukan cara paling sederhana untuk melakukan pembaruan dinamis dengan MathML adalah membiarkan MathJax melakukan perubahan konten (bukan fungsi jQuery .html (s), mis.) Kemudian proses matematika saat mengubah konten.

<script type="text/javascript">
   function updateMathContent(s) {
       var math = MathJax.Hub.getAllJax("mathdiv")[0];
       MathJax.Hub.Queue(["Text", math, s]);
   }
</script>

...

<div id="mathdiv">
   <math xmlns="http://www.w3.org/1998/Math/MathML">
      <msup>
         <mi>x</mi>
         <mn>2</mn>
       </msup> 
   </math>
</div>

Jadi cukup gunakan fungsi untuk mengganti seluruh isi div dengan MathML baru dan itu akan berfungsi. (Naskah masuk di kepala.)

Catatan: Jika Anda memiliki div matematika kosong dan menambahkan MathML nanti, Anda akan mendapatkan kesalahan skrip. Tetapi jika tag matematika hadir tanpa apa pun di dalam panggilan untuk memperbaruiMathContent akan berfungsi.


4
2018-02-13 23:40