|
阅读:16585回复:35
【新年好】自制/修改脚本三连发
Highlight Certain Text|高亮特定文本 for Greasemonkey
http://userscripts.org/scripts/show/64232 Scroll with Mouse Plus|滚动无需点击 for Greasemonkey http://userscripts.org/scripts/show/65196 word highlight Modified|强大的关键词高亮修改版 for Greasemonkey http://userscripts.org/scripts/show/64877 外加一个旧版更新: Search Jump Around for Greasemonkey http://userscripts.org/scripts/show/61372 庆祝新年和论坛复活! |
|
|
|
1楼#
发布于:2010-01-01 12:40
说个无关的 3.6上挺多股沟搜索的脚本都失效了
|
|
|
|
2楼#
发布于:2010-01-01 12:40
谢谢分享。。。
|
|
|
|
3楼#
发布于:2010-01-01 12:40
感谢分享
|
|
|
|
4楼#
发布于:2010-01-01 12:40
谢谢分享,论坛复活,哦耶,新年好,好吧,好像是灌水
|
|
|
5楼#
发布于:2010-01-01 12:40
论坛复活,哦耶,新年好!!!!
|
|
|
6楼#
发布于:2010-01-01 12:40
Highlight Certain Text|高亮特定文本 for Greasemonkey 这个脚本,如果想组合两个单词作为一个整体呢?例如
"firefox extension",像Google搜索的引号? |
|
|
|
7楼#
发布于:2010-01-01 12:40
|
|
|
|
8楼#
发布于:2010-01-01 12:40
我记得隔壁不是回过么。
试了下用"|"后可以正确查找包含空格的词。 |
|
|
9楼#
发布于:2010-01-01 12:40
那个自动滚屏在3.6b5貌似无用,是不是主题非默认?
|
|
|
10楼#
发布于:2010-01-01 12:40
ferret:我记得隔壁不是回过么。 我明白了,你说的是split函数里面用|分隔,然后就可以用了,例如 word_list = "elva hsiao|firefox"
var wordArray = word_list.split('|');但是新问题又来了:这个匹配,在回帖的时候会把匹配项从文本框里面删除掉。例如按上面这样写,然后回帖(你可以试着引用我的这个帖子),本来 word_list = "elva hsiao|firefox"
var wordArray = word_list.split('|');在页面加载后就成了 word_list = "|" word_list = "|||" |
|
|
|
11楼#
发布于:2010-01-01 12:40
|
|
|
|
12楼#
发布于:2010-01-01 12:40
实现无视大小写 先把关键词转换成小写再用indexOf查找试试。 // Highlight function
function HighLightAll(){
var allText = document.evaluate( "//text()", document, null, XPathResult. ORDERED_NODE_SNAPSHOT_TYPE , null);
var allTextLen = allText.snapshotLength;
for (l = 0; l < (wordArray.length); l++) {
var cword = wordArray[l].toLowerCase();
for(var i = 0; i < allTextLen; i++)
{
var cur = allText.snapshotItem(i);
var par = cur.parentNode;
var parName = par.nodeName.toLowerCase();
var textInd;
// Avoid some elements
if(parName == "layer" || parName == "title" || parName.indexOf("textarea") == 0 || parName.indexOf("input") == 0 || parName.indexOf("select") == 0){
continue;
}
else
{
do
{
var curText = cur.nodeValue;
textInd = curText.toLowerCase().indexOf(cword);
if(textInd != -1){
var before = document.createTextNode(curText.substring(0, textInd));
var highlight = document.createElement("layer");
highlight.setAttribute("class","T_HiLi" + l);
highlight.innerHTML = curText.substring(textInd, textInd + cword.length) ;
var after = document.createTextNode(curText.substring(textInd + cword.length));
par.insertBefore(before, cur);
par.insertBefore(highlight, cur);
par.insertBefore(after, cur);
par.removeChild(cur);
cur = after;
}
} while(textInd != -1)
}
}
}
} |
|
|
|
13楼#
发布于:2010-01-01 12:40
不知道是不是GM的限制,Scroll with Mouse Plus对于本地文件无效?
|
|
|
14楼#
发布于:2010-01-01 12:40
@harnack:不错,我已更新我自己的
另:在启用的情况下word_list不能为空好像,否则脚本会卡住直到超时。 |
|
|
上一页
下一页
