加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – SWT浏览器专注于下一个和上一个高亮文本

发布时间:2020-12-15 00:47:53 所属栏目:Java 来源:网络整理
导读:我正在开发一个小型应用程序与SWT浏览器小部件.我正在强调一个搜索文字 a id="xyz" href=''marktest/mark/a 在HTML文档中.并以这种方式替换HTML文本中的所有搜索词,以便我们得到所有的搜索词突出显示. htmltext.replaceAll("(?i)"+Pattern.quote(searchword)
我正在开发一个小型应用程序与SWT浏览器小部件.我正在强调一个搜索文字
<a id="xyz" href=''><mark>test</mark></a>

在HTML文档中.并以这种方式替换HTML文本中的所有搜索词,以便我们得到所有的搜索词突出显示.

htmltext.replaceAll("(?i)"+Pattern.quote(searchword),"<a id='xyz' href=''> <mark>$0</mark></a>

我想实现功能,如果我点击下一个按钮,下一个突出显示的单词应该得到焦点,如果我点击上一个按钮上一个突出显示的文本应该得到焦点.如何使用Eclipse RCP应用程序中的Javascript完成Next和Previous Hit.

解决方法

这最好通过将JavaScript与Java代码相结合来解决.这取决于你要处理什么样的HTML内容,如果它有状态(例如不能重新加载),动态的很多JS代码或纯静态.在大多数情况下,最好的解决方案将涉及大部分逻辑写入JS中,而Java中的最小代码将JS操作绑定到SWT GUI.

您需要执行几件事情:

>关键字搜索
>切换突出显示
>从一个字切换到另一个字

1.搜索:您意识到您将无法搜索跨越多个HTML元素的单词,例如W< span> o< / span> rd?如果没关系,那么您可以像现在一样从Java搜索和替换.我会单独标记每个字符匹配的id:< span id =“match1”>并记得总共找到了几场比赛.

您可能也可以在JS端进行这样的搜索,也可以通过添加一个通过DOM进行迭代并搜索特定文本并将其与另一个DOM对象进行包装的函数.

2.切换突出显示:最好在JavaScript中完成.附加到您的HTML一个JS代码片段,切换DOM元素样式.就像是:
`

function highlight(id) {
  document.getElementById(id).className = 'highlighted'
}

您可以通过调用swtBrowser.execute(“highlight(‘match1’)”)从SWT调用此JS.
此外,您应该实现突出显示的功能.

3.切换元素之间的突出显示:这可以在Java端和JS端进行.我可能会和JS一起添加另外两个函数:highlightNext()和highlightPrev(),它将使用适当的id调用highlight()函数.然后在Java中,您可以通过SWTBrowser.execute()使SWT按钮调用JS函数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读