0

我需要将 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 秒。

4

1 回答 1

0

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

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

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

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

于 2012-06-22T15:36:43.660 回答