2017-09-21 5 views
2

ios10以前では動作しますが、ios11では動作しませんか?iOS11のWKWebviewでjavascript 'window.location.hash'が動作しないのはなぜですか?

- (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 = @""; 
} 

答えて

3

iOS11では、window.location.hashにはスクロールするためのサポートがありません。

選択した場所

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

これは動作しますが、単にコメントにスクロールWebページの次のコードを使用してください:hashElementは「ハッシュ」動作するように自身の署名を持っている必要はありません。例:要素が "#header"の場合は、このコードでhrefとして "header"を渡す必要があります。 –

関連する問題