1

いくつかのUIWebViewで構成されるインターフェイスがあります。これらはすべて、動的にHTMLが供給され、MathJax javascriptが注入されており、ウィンドウにかなりの数の方程式を表示するために使用されます。

MathJaxはローカルに保存され、このチュートリアルで概説されている方法で解析されます:http: //new2objectivec.blogspot.co.uk/2012/03/tutorial-how-to-setup-mathjax-locally.html

残念ながら、私はjavascriptに精通しておらず、MathJaxスクリプトは一時的なHTMLファイルを保存してからUIWebViews(チュートリアルで概説)に戻すという非常に複雑なプロセスを通じてNSStringsにフィードされているようです。

これは私を少し混乱させますが、(ロードされる方程式の量に応じて)かなり適度なロード時間ではありますが、完全に機能します。

MathJaxの実行が停止し、完全にロードされたのはいつか知りたいです。

デリゲートでdidFinishLoadingメソッドを聞いてみましたが、役に立ちませんでした。呼び出しが2、3回(Webビューごとに)行われるだけで、それでも呼び出しが早すぎます。とにかく、JavaScriptがUIWebViewへのロードを完了したときのチェックについて尋ねるいくつかのSOの質問に頭を悩ませることはできません。

MathJaxがその魔法を実行している間に、一時的な読み込みビューをUIWebViewsの前に配置することは、ユーザーの混乱を避けるために絶対に完璧です。しかし、おそらくお分かりのように、私はそれを検出するのに多くの問題を抱えています。

UIWebViewsでのMathJax/javascriptロード検出の操作に関するアドバイスや経験はありますか?

私は確かに任意のNSTimer(つまり「偽の」ロード画面)に依存したくないので、どんな助けでも大歓迎です。

4

1 に答える 1

4

以下を含めることにより、MathJaxが植字を終了した後に関数を実行させることができます。

<script>
MathJax.Hub.Queue(function () {
  ... your code here...
});
</script>

MathJax.js自体をロードするスクリプトの後にHTMLファイルで。

于 2012-12-17T23:12:26.133 に答える