【问题标题】:UIWebview javascript injection too slowUIWebview javascript注入太慢
【发布时间】:2012-06-24 21:39:06
【问题描述】:

我需要将 javascript 注入到基本链接菜单中,以用不同的颜色标记当前选定的菜单项。使用的代码:

    NSString *jsString = [NSString stringWithFormat: @"var allLinks = document.getElementsByTagName('a');for(var i = 0; i < allLinks.length; i++){var link = allLinks[i];if(link.toString().indexOf(\"%@\") != -1){link.setAttribute(\"class\", \"active\"); break;}}", currentURL];


    [self.topNavigationBarWebView stringByEvaluatingJavaScriptFromString: jsString];

并从 webviewdidfinishloading 中调用。然而,评估这段javascript需要很长时间,webview已经加载了很长时间,但是js注入需要2-3秒。

【问题讨论】:

  • 为什么不使用原生 UI 组件呢?

标签: iphone objective-c ios cocoa-touch uiwebview


【解决方案1】:

这是投诉还是问题?如果是问题,究竟是什么问题?

如果您想知道除此之外是否还有其他执行 Javascript 的方法,没有。

您无法将 stringByEvaluatingJavaScriptFromString 作为其内置函数加速。

唯一的选择是 a)在dom加载后执行你的javascript,而不是等待页面加载,看看它是否看起来更快 b) 评估/更改您的 javascript 以查看它是否是最佳的或者可以提高效率,您可以删除 for 循环吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 2015-07-21
    • 2012-02-06
    • 1970-01-01
    相关资源
    最近更新 更多