1

我有一个由几个 UIWebViews 组成的界面,所有这些都是动态提供的 HTML,注入了 MathJax javascript,用于在窗口中显示相当多的方程。

MathJax 存储在本地,并通过本教程中概述的方法进行解析:http: //new2objectivec.blogspot.co.uk/2012/03/tutorial-how-to-setup-mathjax-locally.html

不幸的是,我不擅长 javascript,而且 MathJax 脚本似乎通过存储临时 HTML 文件的相当复杂的过程被输入到 NSStrings,然后将它们传递回 UIWebViews(在教程中概述)。

这让我有点困惑,但它工作得很好,尽管加载时间很短(取决于加载的方程的数量)。

我想知道 MathJax 何时停止运行并已满载。

我试过听委托上的 didFinishLoading 方法无济于事:只被调用了几次(每个 webview),即使这样调用也太早了。无论如何,我无法理解关于检查 javascript 何时在 UIWebView 中完成加载的几个 SO 问题。

在 MathJax 发挥其魔力的同时,在 UIWebViews 前面放置一个临时加载视图绝对是完美的,以节省用户的困惑。但是,正如您可能知道的那样,我在检测它时遇到了很多麻烦。

有没有人有任何与在 UIWebViews 中使用 MathJax/javascript 加载检测相关的建议或经验?

非常感谢任何帮助,因为我当然不想依赖任意的 NSTimers(即“假”加载屏幕)。

4

1 回答 1

4

您可以在 MathJax 完成排版后通过包括

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

在加载 MathJax.js 本身的脚本之后的 HTML 文件中。

于 2012-12-17T23:12:26.133 回答