检测MathJax何时在UIWebView中完成加载

时间:2012-12-17 19:08:40

标签: iphone objective-c ios uiwebview mathjax

我有一个由几个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中加载完成时的问题。

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

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

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

1 个答案:

答案 0 :(得分:2)

通过包含

,可以在MathJax完成排版后运行函数
<script>
MathJax.Hub.Queue(function () {
  ... your code here...
});
</script>
在加载MathJax.js本身的脚本之后的HTML文件中