滚动到UIWebView上的文本
Scroll to text on UIWebView
我正在用最新的SDK和XCode 4.2开发一个iOS应用程序。
我想在UIWeb视图中搜索文本,然后滚动到找到的第一个文本。
我正在使用本教程查找文本:http://zaldzbugz.posterous.com/how-to-search-a-string-inside-uiwebview
如何滚动到找到的第一个文本?
让我们循序渐进。
突出显示
- 将在搜索的文本周围添加一个span元素。对于跨度,高亮显示颜色设置为跨度的背景。修改后的HTML字符串将在视图中呈现
您使用的代码包含以下代码段。
var span = document.createElement("span");
var text = document.createTextNode(value.substr(idx,keyword.length));
span.appendChild(text);
span.setAttribute("class","uiWebviewHighlight");
span.style.backgroundColor="black";
span.style.color="white";
我们需要一个id到跨度才能移动。所以添加id如下,
var span = document.createElement("span");
var text = document.createTextNode(value.substr(idx,keyword.length));
span.appendChild(text);
span.setAttribute("id","SEARCH WORD");
span.setAttribute("class","uiWebviewHighlight");
span.style.backgroundColor="black";
span.style.color="white";
移动到第一次出现
在"Webview didload"中使用以下javascript移动到第一次出现。
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById('SEARCH WORD').scrollIntoView()];
希望这会有所帮助。
看看教程中用于突出显示的最后一条注释。http://zaldzbugz.posterous.com/how-to-search-a-string-inside-uiwebview
在使用span 进行所有操作后,将此代码块添加到UIWebViewSearch.js中
//old code
text = document.createTextNode(value.substr(idx+keyword.length));
element.deleteData(idx, value.length - idx);
var next = element.nextSibling;
element.parentNode.insertBefore(span, next);
element.parentNode.insertBefore(text, next);
element = text;
//new portion of code
if (uiWebview_SearchResultCount == 1)
{
var desiredHeight = span.offsetTop - 140;
window.scrollTo(0,desiredHeight);
}
我已经在iPhone模拟器4.3和5.0上检查了这个解决方案。
您可以滚动到使用此修改找到的最顶部文本:
// >=1
if (uiWebview_SearchResultCount >= 1)
{
var desiredHeight = span.offsetTop - 140;
window.scrollTo(0,desiredHeight);
}
相关文章:
- 在UIWebView中查找并突出显示带变音符号的阿拉伯语文本
- 如何在使用 UIWebView 编辑 HTML 内容时正确调整输入语言更改 (LTR/RTL) 的文本对齐方式
- 更改UIWebView中的文本字体大小-如何设置textFontSize的初始值
- 调整 UIWebView 文本的大小
- uiwebview JavaScript HTML 仅获取面向用户的正文文本
- 从UIWebView中提取文本
- 如何将其他文本附加到 UIWebView 中
- 突出显示 UIWebView 中的文本
- UIWebView 更改行距文本
- UIWebView 更改源中文本的行距
- UIWebview获取所选文本的范围并保存以供以后使用
- 将文本注入 UIWebView 文本字段
- 突出显示表视图单元格中的 uiwebview 文本
- 目标C - UIWebview - 将javascript文本范围转换为目标c对象,反之亦然
- 如何检测UIWebView何时开始选择文本
- 滚动到UIWebView上的文本
- 带有土耳其语文本的HTML未显示在UIWebview中
- 在UIWebView中检测单点,但仍然支持文本选择和链接
- 如何在UIWebView中获得选定文本的javascript范围对象
- 检测UIWebView文本选择中的文本选择变化