hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
阅读:54072回复:178

【发布】【GM脚本】强大的关键词高亮增强版

楼主#
更多 发布于:2010-01-17 00:23
发布地址:

Enhanced word highlight|强大的关键词高亮增强版 for Greasemonkey
http://userscripts.org/scripts/show/64877
https://greasyfork.org/zh-CN/scripts/7251-enhanced-word-highlight
最新版 1.5.8 ;更新日期:2014.12.31
v1.5.8 适应了新的GM要求,调整了一下界面,增加对Superpreloader的适配。
脚本详细更新情况以发布页为准!


提示:有什么问题,装个最新版可能就解决了;没解决的欢迎跟帖提交。
---
[quote="发布页面"]Enhanced word highlight 是 “word highlight” 脚本的增强版本,除了原脚本的如下特性外:

    * 自动高亮:在 Google 搜索结果页以及从中打开的页面中自动高亮搜索关键词;
    * 继承高亮:在已有高亮关键词的情况下,在同一标签/窗口浏览的其他页面中的相同关键词也会被高亮;
    * 按下 “Ctrl-/” 组合键可以手动输入关键词(支持正则表达式)在任何页面上高亮;
    * 提供已高亮关键词的分布图和计数;
    * 通过分布图和面板可以快速找到高亮关键词的位置。

还增加或增强了以下特性:

    * 能够在其他网站的搜索结果页面自动高亮搜索关键词;
    * 添加了“Lock”按钮,可以储存一组关键词并使之在任何页面均高亮;
    * 面板和添加关键词的输入框样式更轻巧更美观;
    * 现在只需要按一次 “Ctrl-/” 组合键就可以多次添加关键词(按回车添加并立即高亮),添加完了按“Esc”键就可以关闭;也可以一次输入多个关键词,用空格分隔;
    * 高亮样式与原文本无缝结合;
    * 更方便查找高亮关键词位置,可点击高亮面板上的关键词或直接在关键词上滚动滚轮;
    * 增强的自动翻页工具支持;
    * 以及更多……[/quote]

---有关技术细节和求助
请求协助测试在Chrome/Chromium下的运行情况以及其下如何方便地进行调试。
希望大家在使用的过程中,如果遇到脚本不能自动高亮的比较常用的搜索页面,请跟帖报告地址,方便我改进,谢谢!

最新喜欢:

skytalkskytal... YangliYangli
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
1楼#
发布于:2010-01-17 00:23
newbrightness7:已用,很不错,谢谢楼主。另外,高亮文字颜色和底色能改吗?怎么改?我需要文字前景色为红色和其他的,并加粗,这样更醒目。回到原帖

span[class^="wordhighlight_word"]{font-weight:800!important;color:red!important;}

把这条加到 Stylish 样式中,就可以实现粗体和红色字。
……只是我个人认为背景色已经足够醒目了……
span.wordhighlight_word0{background:#ffff00!important;}

这条能修改第一个高亮词的背景色,“word0”表示第一个,“word1”表示第二个,如此类推;后面“#ffff00”是颜色,自己定义一系列喜欢的颜色就是了。

用 Stylish 来改可以省得改脚本代码;当然如果你想改也可以问,我告诉你到哪改。
不过像颜色选择这些,除非很不合适,否则我都不想在脚本代码中改。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
2楼#
发布于:2010-01-17 00:23
kmc:普通页面的原来发过啊,highlight certain text脚本。回到原帖

Highlight Certain Text 是用于在很多页面上无需重复设置高亮相同的一组关键词,Enhanced word highlight 是用于一次性在一个页面高亮一组关键词,用途是不同的。

[quote="just4fun"]好东西啊,谢谢分享!
要是能在普通页面进行多词高亮就更好了[/quote]
Enhanced word highlight 也是可以在普通页面高亮的(没看我发布页上辛辛苦苦写下的说明么? ),只需要按下“Ctrl-/”组合键就会出现一个输入条,在里面输入要高亮的关键词后按回车就是了。
这脚本强大在于高亮了还能定位还能编辑还能自动高亮搜索关键词。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
3楼#
发布于:2010-01-17 00:23
alanfly:遇到不能自动高亮的网页:
用google搜索,配合googlemonkey脚本自动加载下一页,但是第二页就不高亮关键词了;
回到原帖

你几时修改的帖子?为什么我昨晚没发现?
GoogleMonkeyR 脚本没有提供像 Autopagerize 那样的事件句柄,于是我的脚本没办法跟踪 GoogleMonkeyR 的翻页动作,所以不能对新添加的页面内容进行高亮。
要么 GoogleMonkeyR 作者添加一个事件句柄,要么就禁用其翻页功能改用 Autopagerize 吧。
--
P.S. 发现一个脚本  Google Search Filter Plus 声称“support”“GoogleMonkeyR”,下来试了一下,发现也不支持 GoogleMonkeyR 的自动翻页功能,让我空欢喜一场。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
4楼#
发布于:2010-01-17 00:23
hecy2006:我下的是个js文件,怎么装?回到原帖

这个先需要装个 GreaseMonkey 扩展,这是常识了……

kmc ,终于模拟出来了

……的确很壮观 <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) -->

你直接到代码里把下面这行(没错的话是 422 行)
label.htmlFor = _id;

改成
label.htmlFor = _next.id;

就能实现你要的功能了。
我还是先处理一下叠在一起的问题再更新。
---
已更新:增加面板上关键词垂直间隔,增加当前关键词的闪动效果,将点击面板上的关键词动作从切换该关键词高亮变成跳转到该关键词的下一个出现位置。

---
kmc,在哪些网页上 Ctrl-/ 失效啊?如果是快捷键冲突的话在代码的 42 行可以改快捷键的。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
5楼#
发布于:2010-01-17 00:23
我完全不知道手势脚本怎么调用 GM 脚本的函数……
我想最简单的办法应该是我提供个快捷键,然后你在手势中加模拟按键脚本吧。
用ctrl+/调用输入关键字后,行为还是点击取消复选框,可能这个label.htmlFor = _next.id;出现在几个函数中了?
--Edit
还发现,如果是Google这样搜索结果的页面,点其中的链接,新页面是继承打开高亮功能的,这个非常方便。但是如果手动ctrl+/输入的关键字,当时是高亮了,可是刷新页面就没了。能不能保持一样的行为呢?

没有,我编辑的时候就查找过了,仅此一行,而且测试过没问题的。或者你需要先卸掉原来的脚本,再在发布页安装;这应该是我的失误,新版本 1.1.2b 将名称改掉了,这样就不会跟旧脚本混淆。
脚本继承关键词使用的是 referrer ;而要输入的关键词也记录需要向 pref.js 存入信息。对于这个目的是“一次性”高亮的脚本来说每次高亮都存入不合理;以怎样的方式存入和读取也是个问题(我连用什么函数还没懂),这个我再考虑下吧。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
6楼#
发布于:2010-01-17 00:23
easylife206:要是直接支持GoogleMonkeyR 就更好了 呵呵!回到原帖

用 GoogleMonkeyR 的同学可以用这样的曲线救国办法:
1. 点一下面板上的“Edit”,变成编辑状态,再点一下“Set”退出编辑状态,这样新增的页面部分也会高亮了,但这样的话高亮分布图不会更新;
或者,
2. 点一下面板上的“Off”关闭高亮,然后按“Ctrl-/”组合键调出关键词输入框,不输入任何东西,按回车,这样之前的关键词又全部高亮了而且分布图会更新,但手续比较复杂还要关闭输入框(不改变焦点下按“Esc”键)。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
7楼#
发布于:2010-01-17 00:23
更新了,增加锁定(储存)一组高亮关键词的功能。
目前该功能优先级高于其他自动高亮。

下一步:增加编辑、禁用高亮的快捷键。

P.S.1 哗,这几天下载量有点惊人……
P.S.2 写代码在理好思绪后很快就写好了,倒是写个完整的说明比较花时间。
P.S.3 为啥我完全原创的把几个搜索引擎的结果同页显示的脚本这么没人气呢,呜呜……
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
8楼#
发布于:2010-01-17 00:23
不过刷新后,手动拖拽到别处计数框会自动复位初始位置.
也希望完善,让框框保持自定义位置,框框的高度有点浪费了屏幕高度,窄点精简的好.如果可以自动贴边就更爽了.

记录位置可以实现,但效果并不好,一来换个网页可能就遮住有用的位置了,二来换个关键词大小又不一样了。
我还是考虑将其贴边,再美化一下样式。

[quote="kmc"]对了,使用这几天发现的一个比较大的问题:匹配方式不是按整个单词。

在Google搜索care careful careless你就会明白,匹配到的只有care。如果出现比较短的 it, is就更明显了[/quote]
这个我清楚,脚本对关键词的分析代码比较简单(对我来说可是复杂到现在还没完全明白),只能单向一个一个高亮,也不能排重,也不会排除双引号连字号之类的……总之对我这个正则菜鸟来说,解决这个是相当艰难的……
所以我就不夸下海口,还是保持承诺:下次更新快捷键先。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
9楼#
发布于:2010-01-17 00:23
更新了!
可选添加还是取代关键词高亮;
增加禁用高亮和编辑高亮的快捷键(代码50~51行),默认是 Alt-. 和 Alt-/ ;
分布图拖动时同步滚动页面;
等等……

多谢 grea !

--
下一步:贴边显示;实现的方式可能没想象中简单。
再下一步:可能是智能化关键词处理……
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
10楼#
发布于:2010-01-17 00:23
asdfcc:试用了最新版,发现有这么几个问题:
1.在处理GoogleKingkong的时候,你原先说的方法“点一下面板上的“Off”关闭高亮,然后按“Ctrl-/”组合键调出关键词输入框,不输入任何东西,按回车,这样之前的关键词又全部高亮了而且分布图会更新”失效了。
2.Alt+.似乎只能关闭高亮,没办法再开启。能不能实现“取消/恢复”呢?即按一下取消,再按一下恢复。
3.这一点其实是我个人的建议,现在对多个关键词的处理方法是用空格来标识,搜中文还好,因为中文的词组之间根本不需要空格嘛,比如我搜一个“经典电影情歌”,那就直接高亮了整个词组。但搜英文的时候就有点头疼了,按照我的需求,“Classic Movie Love Songs”只是1个关键词,但脚本却把它识别为4个,于是用4种颜色显示,就有点眼花了。所以能不能把多重搜索的标识符改为别的,比如+或者|啥的?(虽然输入空格是最方便并且大家最习惯的Orz)或者它们连在一起就只用一种颜色显示,分开的才用多种颜色,不知和楼主“智能化关键词处理”的想法是否一致?
回到原帖

第一条是我的疏忽,只是顾着忽略空关键词输入而忘了这个功能了。
(这个不是跟 GoogleKingKong 冲突;不过意外地发现我的 Google 样式能够让 GoogleKingKong 显示得更完美。)
这个会跟第二条一起,在将来把“禁用高亮”和“关闭高亮”分开,前者只是不高亮,后者则是现在的关闭。
第三条见24楼的讨论,要实现还得颇有时日。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
11楼#
发布于:2010-01-17 00:23
更新了:
分布图现在可以自动更新了;“Off”按钮现在分成“Off”(停用高亮)和“X”(禁用高亮)两个按钮;样式修正。

关于“贴边显示”这个……单纯粘到边上好像并没有实质性的改善,希望有好的建议。

不同意这一点:

你自己应该用引号引起来,这样会识别为一个关键词,这不应该是脚本做的,因为搜索引擎默认有这个功能,脚本也反映了它:

应该说,按照“国际惯例”,只有半角引号("")才能把关键词合起来。中文的双引号(“”)并不是国际通用的。

希望大家遇到用这个脚本不爽的地方要积极提出啊,我一个人没办法检验所有可能性所有应用环境。
Userscripts.org 有人说在 Chrome 上配合 autopage 下我这脚本不好用,如果有人喜欢折腾 Chrome 的请帮忙测试下,谢谢。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
12楼#
发布于:2010-01-17 00:23
kmc,v1.2.8 添加了关键词排序,请你测试下效果如何?
排重功能似乎没那么简单,仍在研究中。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
13楼#
发布于:2010-01-17 00:23

(--!)……

[quote="Roysing"]其实自动贴边还是其次,用了一段时间,发现保留自定义位置而不复位才是最重要的.

不如这样吧,我把功能加进去,默认不启用,你更新脚本之后自行编辑脚本代码开启吧。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
14楼#
发布于:2010-01-17 00:23
还有个问题,脚本高亮英文双引号包含的带空格关键词时,自动高亮的关键词效果正常,编辑和添加的关键词就有问题,经常不能高亮,还是找不出原因。

优化关键词排序功能;添加关键词排重功能;增加保存面板位置的选项。

排除列表功能还没添加,总有点会“误杀”的顾虑。我想知道 SearchWP 等的扩展是怎么做的。

另外,总算看懂了一些代码,似乎原脚本就有一些关键词排重的功能,但不知为什么完全不管用。
上一页
游客

返回顶部