2017-09-21 2 views
2

kann es in ios10 oder vorher arbeiten, aber es kann nicht in ios11 arbeiten?Warum Javascript 'window.location.hash' funktioniert nicht in WKWebview in ios11?

- (void)jumpToHash:(WKWebView *)wkWebView { 
NSString * jsJumpToHash =[NSString stringWithFormat:@"function jumpToHash(){window.location.hash ='#%@hash';};",self.hashLocation]; 

[wkWebView evaluateJavaScript:jsJumpToHash completionHandler:^(id Result, NSError * error) {}]; 

NSString *jsFun = @"jumpToHash()"; 

[wkWebView evaluateJavaScript:jsFun completionHandler:^(id Result, NSError * error) {}]; 

self.hashLocation = @""; 
} 

Antwort

3

In iOS11 hat window.location.hash keine Unterstützung zum Scrollen zum Speicherort.

Bitte verwenden Sie folgenden Code für Scroll-Web-Seite zu ausgewählten Ort

[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"var hashElement=document.getElementById('%@');if(hashElement) {hashElement.scrollIntoView();}", href]]; 
+0

Dies funktioniert, aber nur einen Kommentar: hashElement nicht die „Hash“ haben muss sich anmelden zu arbeiten. Beispiel: Wenn Ihr Element "#header" ist, müssen Sie in diesem Code "header" als href übergeben. –

Verwandte Themen