【问题标题】:Javascript in UIWebViewUIWebView 中的 Javascript
【发布时间】:2010-01-18 11:31:09
【问题描述】:

我正在使用 UIWebView 显示文章,功能要求之一是调整文本大小。因为,设置增加的大小和重新加载 UIWebView 会丢失滚动偏移,我决定使用 Javascript 解决方案。

文章 HTML 正文标签如下所示:<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 业务..

【问题讨论】:

    标签: javascript iphone uiwebview


    【解决方案1】:

    “有时有效,有时无效”是否与有时在 HTML 页面完全加载之前调用 javascript,有时在完全加载之后调用的事实相关联?

    【讨论】:

    • 这是一个很好的观察,但我怀疑这里的情况,因为我在代码中构造了所有 HTML,然后传递给 UIWebView。那么唯一可能需要一段时间才能加载的东西(尤其是在 3G 上)是外部 ,但这会是问题吗?
    • 我认为检查页面加载是否不影响 JS 调用行为的最佳方法是实现 UIWebViewDelegate 协议并检查 JavaScript 是否仅被调用一次 - (void )webViewDidFinishLoad:(UIWebView *)webView 被调用:当这个回调被调用时,你确定 webview 的状态是“稳定的”。
    • 我刚刚测试了带有 onLoad 警报和互联网连接速度变慢的应用程序 - 你是对的!在完全加载所有外部图像之前,无法调用 JavaScript。感谢您指出正确的道路:)
    猜你喜欢
    • 2016-11-06
    • 2011-09-24
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多