Как прокрутить WebView HTML-строки на определенный якорь? - PullRequest
1 голос
/ 03 сентября 2010

Мне интересно, как программно выполнить прокрутку до заданной привязки в WebView.

Отображаемое содержимое отображается с помощью

[[webView mainFrame] loadHTMLString:htmlString baseURL:someURL];

, и поэтому я не могу просто перейти кякоря, указывая их в URL.

Я ищу метод в соответствии с

[[webView mainFrame] scrollToAnchor:@"anchor"]

, но, очевидно, его нет.

TIA

Ответы [ 3 ]

3 голосов
/ 03 сентября 2010

Использование Javascript Bridge работает, но вы также можете сделать эквивалент из Objective-C, если хотите:

DOMDocument *doc = [[webView mainFrame] DOMDocument];
DOMElement *element = [doc getElementById:@"anchor"];
[element scrollIntoView:YES];
2 голосов
/ 05 мая 2014
- (void)viewDidLoad
{
   [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"YOUR_STRING_WITHOUT_ANCHOR"]]];
}

- (void)webViewDidStartLoad:(UIWebView *)_webView {
   [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('YOUR_ANCHOR_HERE_WITHOUT_#').scrollIntoView(true);"];
}
0 голосов
/ 03 сентября 2010

Хорошо, нашел обходной путь, но я не знаю, правильно ли это делать.Получив ссылку на контекст javascript, я могу вызвать методы javascript в webFrame.

[[webView windowScriptObject] evaluateWebScript:@"document.getElementById('TheId').scrollIntoView(true);"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...