2010-01-18 45 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