【问题标题】:Why javascript 'window.location.hash' does not work in WKWebview in ios11?为什么 javascript 'window.location.hash' 在 ios11 的 WKWebview 中不起作用?
【发布时间】:2017-09-21 00:30:18
【问题描述】:

在ios10及之前可以用,在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 = @"";
}

【问题讨论】:

    标签: javascript objective-c wkwebview ios11 xcode9


    【解决方案1】:

    在 iOS11 中,window.location.hash 不支持滚动到位置。

    请使用以下代码将网页滚动到所选位置

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

    【讨论】:

    • 这行得通,但只是一个评论:hashElement 本身不需要有“hash”符号才能工作。例如:如果您的元素是“#header”,则必须在此代码中将“header”作为 href 传递。
    猜你喜欢
    • 2018-05-12
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多