我需要注入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秒的额外时间。
发布于 2012-06-22 23:36:44
这是投诉还是问题?如果这是一个问题,那么这个问题到底是什么?
如果你想知道有没有比这个更好的执行Javascript的方法,不,没有。
你不能提高stringByEvaluatingJavaScriptFromString的速度,因为它是一个内置函数。
唯一的选择是a)在dom加载之后执行你的javascript,而不是等待页面加载,看看它是否看起来更快b)评估/changeO\你的javascript看看它是最优的还是更高效的,你能去掉for循环吗?
https://stackoverflow.com/questions/11158733
复制相似问题