したがって、基本的に私がやろうとしているのは、MathML 式を適切にレンダリングするための Chrome 拡張機能を用意することです (「MathJax for Chrome」拡張機能を試しましたが、うまくいきません)。
私の当初の計画では、ノードに MathJax コードへのリンクを追加するだけでしたhead
が、これは機能しません (ページが読み込まれた後に追加されるためだと思います)。
私の現在の計画は、各 MathML オブジェクトをiframe
、MathJax コードを参照し、元の MathML オブジェクトのみを含む に置き換えることです。のiframe
HTML は元の MathML 要素に基づいているため、srcdoc
属性を使用しています。これが私の現在のスクリプトです:
$(document).ready(function() {
$("math").each(function(index, obj) {
// create an inline frame to replace the math element
var iframe = document.createElement("iframe");
var html = '<html><head><script type="text/javascript" src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></head>';
html += '<body>';
// http://stackoverflow.com/questions/2419749/get-selected-elements-outer-html
html += $(obj).clone().wrap('<p>').parent().html();
html += '</body></html>';
$(iframe).attr("srcdoc", html);
iframe.textContent = "FOO";
$(obj).replaceWith(iframe);
});
});
これは、Mozilla の MathML "Torture Test" のような XHTML 以外のページでは機能しますが、XHTML (トランジショナルであっても) では"FOO"
テキストを取得するだけです。
iframe
XHTML Transitional で sを機能させるために必要なことは他にありますか? または、私が望むものを達成するためのより良い方法はありますか?