自动滚动页面uiwebview底部
Posted
技术标签:
【中文标题】自动滚动页面uiwebview底部【英文标题】:Auto scroll bottom of page uiwebview 【发布时间】:2010-12-06 11:09:43 【问题描述】:我希望一旦 webview 加载
- (void)webViewDidFinishLoad:(UIWebView *)webBrowser
//Scroll to bottom
只关注底部,所以基本上只显示到 uiwebview 的底部并可能将其锁定在那里,因此用户无法滚动。
【问题讨论】:
【参考方案1】:首先你必须得到内容高度,我从来没有亲自做过,但here 是一个很好的起点:
这里有一些可用的常量 给出窗口的文档区域 可用于写入。 这些将不可用,直到 加载文档后, 用于引用它们的方法是 浏览器特定。可用的 常量是:
window.innerHeight/Width 提供者 大多数浏览器,但重要的是,不是 IE浏览器。 document.body.clientHeight/Width 由许多浏览器提供,包括 IE浏览器。 文档.文档元素。 clientHeight/Width 大多数提供 DOM 浏览器,包括 Internet 探险家。
然后滚动到你想要的偏移量是这样的:
[webView stringByEvaluatingjavascriptFromString: [NSString stringWithFormat:@"scrollTo(0,%d)",scrollPosition];
【讨论】:
【参考方案2】:webview 内部的操作由 JavaScript 控制,因此您可以在 Scroll Automatically to the Bottom of the Page 找到各种解决方案。
基于 Tho 答案 (var scrollingElement = (document.scrollingElement || document.body); scrollingElement.scrollTop = scrollingElement.scrollHeight;
) 的示例:
使用 UIWebView(已弃用)
DispatchQueue.global().async
_ = webView.stringByEvaluatingJavaScript(from: "var scrollingElement = (document.scrollingElement || document.body); scrollingElement.scrollTop = scrollingElement.scrollHeight;")
使用 WKWebView (ios 8+)
webView.evaluateJavaScript("var scrollingElement = (document.scrollingElement || document.body); scrollingElement.scrollTop = scrollingElement.scrollHeight;")
【讨论】:
以上是关于自动滚动页面uiwebview底部的主要内容,如果未能解决你的问题,请参考以下文章