2012-06-22 6 views
0

Мне нужно ввести javascript в основное меню ссылок, чтобы отметить выбранный пункт меню с другим цветом. Используемый код:UIWebview javascript injection слишком медленный

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. Однако для оценки этого chuknk javascript потребовалось очень много времени, webview уже загружен в течение длительного времени, но js-инъекция занимает 2-3 дополнительных секунды.

+0

Почему бы вам не использовать собственные компоненты пользовательского интерфейса? –

+0

это требование клиента –

ответ

0

Это жалоба или вопрос? Если это вопрос, в чем вопрос в точности?

Если вам было интересно, если есть какой-либо другой способ выполнения Javascript, то это не так.

Вы не можете ускорить преобразование строкиByEvaluatingJavaScriptFromString в качестве встроенной функции.

Единственные варианты для а) выполнять свой JavaScript после йот загрузится, а не ждать загрузки страницы, чтобы увидеть, если он дает появление быть быстрее б) оценить/changeO \ ваш Javascript, чтобы увидеть, если это оптимально или его можно сделать более эффективным, вы можете удалить цикл for?

Смежные вопросы