2010-01-18 44 views
0

我使用UIWebView中显示的文章和功能性的要求之一是文本大小调整。因为,设置增加的大小和重新加载UIWebView失去了滚动抵消,我决定使用Javascript解决方案。的Javascript中的UIWebView

文章HTML body标签看起来是这样的:<body style='font-size:12px;'>

和调整功能基本上是这样的:

NSString * str;

str = [NSString stringWithFormat:@"document.getElementsByTagName('body')[0].style.fontSize=%d;", app.storyTextSize];

[textView stringByEvaluatingJavaScriptFromString:str];

[textView stringByEvaluatingJavaScriptFromString:str];

而且事实上它的作品的问题。在我的iPod它的伟大工程(双stringByEvaluatingJavascript的伎俩),但我有其他测试者报告说,他的iPhone有时工作,有时它不会(我猜他的意思是在这个并非每一个按钮点击执行的Javascript正确的,即使它应该被执行两次以保证安全)。

有什么办法,我可以优化我的解决方案,使之更加防弹?或者,也许有一种方法可以在重新加载UIWebView之后回滚到之前的位置,但是,再次,UIWebView中的设置偏移量将成为Javascript商店..

回答

1

是不是“有时它工作,有时不”链接到事实上,有时在完全加载HTML页面之前调用JavaScript,有时在满载之后?

+0

这是一个很好的观察,但我怀疑它,因为我构建所有的HTML代码,然后传递到一个UIWebView这里的情况。那么只有可能需要一段时间才能加载的东西(特别是在3G上)是外部,但它可能是问题吗? – sniurkst 2010-01-18 15:56:58

+0

我认为要检查的最佳方式,如果页面的加载不会影响JS invokation的行为是实施UIWebViewDelegate协议和检查的javascript只调用一次的 - (空)webViewDidFinishLoad:(UIWebView的*)调用webView:调用此回调函数时,您确定webview的状态是“稳定的”。 – yonel 2010-01-18 16:03:34

+0

我刚刚使用onLoad提醒测试了应用程序并减慢了互联网连接 - 您是对的!直到所有外部图像完全加载后才能调用JavaScript。感谢您指出正确的道路:) – sniurkst 2010-01-18 16:10:11