Вы можете создавать ссылки внутри страницы, используя простые стандартные правила CSS. Для того, чтобы удалить подчеркивание и изменить цвет ссылки, например, красный, добавьте следующий стиль CSS:
a {
text-decoration: none;
color: red;
}
UIWebView
имел некоторые специфические стили, которые можно манипулировать, используя нестандартные свойства CSS. Вы можете найти полный список here.
Если вам нужно применить этот стиль к HTML-странице, которую вы не контролировали, вам нужно ввести код JavaScript на целевую страницу из собственного кода Objective-C.
Итак, прежде всего, давайте писать код JavaScript, что изменить стиль <a>
элемента с id
«urlID»:
var link = window.document.getElementById('urlId');
link.style['text-decoration'] = 'none';
link.style.color = 'red';
Затем нам нужно сказать родной UIWebView
выполнить этот JavaScript кода, когда веб-страница закончила загрузку (таким образом, мы уверены, что элемент DOM, который мы ищем, есть). Для этого мы можем использовать протокол UIWebView UIWebViewDelegate
и его метод webViewDidFinishLoad:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *javaScriptCodeToExecute = @"var link = window.document.getElementById('urlId'); link.style['text-decoration'] = 'none'; link.style.color = 'red';";
[_webView stringByEvaluatingJavaScriptFromString:javaScriptCodeToExecute];
}
я положил код JavaScript внутри строки переменной javaScriptCodeToExecute
и я сказал к UIWebView
, чтобы выполнить его, используя метод stringByEvaluatingJavaScriptFromString:
.
Спасибо, но как мне вставить это на страницу, которую я не контролирую? например Я загружаю google.com в UIWebView и хочу стилить ссылки. –
Привет. Просто добавлено объяснение того, как вводить пользовательский код JavaScript внутри внешней веб-страницы, загруженной в UIWebView. Дайте мне знать, что вы думаете. – Andrea
Спасибо. Это тоже не работает. Не ссылки становятся красными, а ссылки по-прежнему имеют одинаковый стиль. Я думаю, что это может быть связано с тем, что Apple делает ссылку на обнаружение после загрузки веб-представления и поэтому переоценивает наш стиль. –