Javascript 使用Greasemonkey更改链接和单词
我正在尝试使用greasemonkey更改url和单词 示例:Javascript 使用Greasemonkey更改链接和单词,javascript,greasemonkey,replace,Javascript,Greasemonkey,Replace,我正在尝试使用greasemonkey更改url和单词 示例: <a href="http://www.rapid%2Ashare.com/" target="_blank">www.rapid*share.com</a> <a href="http://www.*Forbidden*/" target="_blank">www.*Forbidden*</a> *Forbidden* var words = { "rapi
<a href="http://www.rapid%2Ashare.com/" target="_blank">www.rapid*share.com</a>
<a href="http://www.*Forbidden*/" target="_blank">www.*Forbidden*</a>
*Forbidden*
var words = {
"rapid*share":"rapidshare",
"*Forbidden*":"www.mediafire.com",
"*Forbidden*":"narutopedia",
"":""};
// read
String.prototype.prepareRegex = function() {
return this.replace(/([\[\]\^\&\$\.\(\)\?\/\\\+\{\}\|])/g, "\\$1");
};
// tag
function isOkTag(tag) {
return (new RegExp("(," + tag + ",) | (," + tag + "$)", "g").test(",pre,blockquote,code,input,button,textarea")) == false;
}
// convert word
var regexs=new Array(),
replacements=new Array();
for(var word in words) {
if(word != "") {
regexs.push(new RegExp(word.prepareRegex().replace(/(\\)?\*/g, function(e) {return ((e !== "\\*") ? "[^ ]*" : "*");}), "gi"));
replacements.push(words[word]);
}
}
//
var texts = document.evaluate(".//text()[normalize-space(.)!='']",document.body,null,6,null), text="", len=regexs.length;
for(var i=0,l=texts.snapshotLength; (this_text=texts.snapshotItem(i)); i++) {
if(isOkTag(this_text.parentNode.tagName) && (text=this_text.textContent)) {
for(var x=0; x<len; x++) text = this_text.textContent = text.replace(regexs[x], replacements[x]);
}
}
//replace url or link
var links = document.links;
var link;
for(var i=links.length-1; i >=0; i--){
link = links[i];
link.href = link.href.replace("http://www.rapid*share.com", 'http://www.rapidshare.com');
link.href = link.href.replace("http://www.zid*du.com", 'http://www.ziddu.com');
}
*禁止的*
我想换个词
- 快速*共享到rapidshare
- *禁止*访问mediafire.com
- *禁止进入火影忍者
<a href="http://www.rapid%2Ashare.com/" target="_blank">www.rapid*share.com</a>
<a href="http://www.*Forbidden*/" target="_blank">www.*Forbidden*</a>
*Forbidden*
var words = {
"rapid*share":"rapidshare",
"*Forbidden*":"www.mediafire.com",
"*Forbidden*":"narutopedia",
"":""};
// read
String.prototype.prepareRegex = function() {
return this.replace(/([\[\]\^\&\$\.\(\)\?\/\\\+\{\}\|])/g, "\\$1");
};
// tag
function isOkTag(tag) {
return (new RegExp("(," + tag + ",) | (," + tag + "$)", "g").test(",pre,blockquote,code,input,button,textarea")) == false;
}
// convert word
var regexs=new Array(),
replacements=new Array();
for(var word in words) {
if(word != "") {
regexs.push(new RegExp(word.prepareRegex().replace(/(\\)?\*/g, function(e) {return ((e !== "\\*") ? "[^ ]*" : "*");}), "gi"));
replacements.push(words[word]);
}
}
//
var texts = document.evaluate(".//text()[normalize-space(.)!='']",document.body,null,6,null), text="", len=regexs.length;
for(var i=0,l=texts.snapshotLength; (this_text=texts.snapshotItem(i)); i++) {
if(isOkTag(this_text.parentNode.tagName) && (text=this_text.textContent)) {
for(var x=0; x<len; x++) text = this_text.textContent = text.replace(regexs[x], replacements[x]);
}
}
//replace url or link
var links = document.links;
var link;
for(var i=links.length-1; i >=0; i--){
link = links[i];
link.href = link.href.replace("http://www.rapid*share.com", 'http://www.rapidshare.com');
link.href = link.href.replace("http://www.zid*du.com", 'http://www.ziddu.com');
}
var words={
“快速*共享”:“快速共享”,
“*禁止*”:“www.mediafire.com”,
“*禁止*”:“火影忍者”,
"":""};
//阅读
String.prototype.prepareRegex=函数(){
返回此。替换(/([\[\]\^\&\$\.\(\)\?\/\\\+\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
};
//标签
功能isOkTag(标签){
返回(newregexp(“(,“+tag+”,)|(,“+tag+”$),“g”)。测试(“,pre,blockquote,code,input,button,textarea”)==false;
}
//转换词
var regexs=新数组(),
替换=新数组();
for(字中的var字){
如果(单词!=“”){
push(新的RegExp(word.prepareRegex().replace(/(\\)?\*/g,函数(e){return((e!=“\\*”)?[^]*”:“*”),“gi”);
替换。推(字[字]);
}
}
//
var text=document.evaluate(“.//text()[规范化空格(.)!=””),document.body,null,6,null),text=“”,len=regexs.length;
对于(var i=0,l=text.snapshotLength;(this_text=text.snapshotItem(i));i++){
if(isOkTag(this_text.parentNode.tagName)&&(text=this_text.textContent)){
对于(变量x=0;x=0;i--){
链接=链接[i];
link.href=link.href.replace(“http://www.rapid*分享网“,”http://www.rapidshare.com');
link.href=link.href.replace(“http://www.zid*",http://www.ziddu.com');
}
输出,只更改单词而不更改url,禁止所有更改火影忍者
<a href="http://www.rapid%2ashare.com/" target="_blank">www.rapidshare.com</a>
<a href="http://www.*forbidden*/" target="_blank">narutopedia</a>
<!-- text -->
narutopedia
火影忍者
JSFIDLE
有解决办法吗?
谢谢
更改Url的解决方案
var url1,url2;
url1 = ['www.youtube.com','youtube.com', 'www.video.google.com', 'video.google.com', 'adbanner', 'advertisement', 'adserver', 'doubleclick'];
url2 = ['208.65.153.242','208.65.153.242', 'video.l.google.com', 'video.l.google.com', ' ', ' ',' ',' ' ];
var a, links;
var tmp="a";
var p,q;
links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
a = links[i];
for(var j=0;j<url1.length; j++)
{
tmp = a.href+"" ;
if(tmp.indexOf(url1[j]) != -1)
{
p=tmp.indexOf(url1[j]) ;
q="http://";
q = q + url2[j] + tmp.substring(p+url1[j].length,tmp.length);
a.href=q ;
}
}
}
var url1、url2;
url1=['www.youtube.com','youtube.com','www.video.google.com','video.google.com','adbanner','advision','adserver','doubleclick'];
url2=['208.65.153.242','208.65.153.242','video.l.google.com','video.l.google.com','','','','';
var a,链接;
var tmp=“a”;
var p,q;
links=document.getElementsByTagName('a');
对于(变量i=0;i
link.href = link.href.replace("http://www.rapid*share.com", 'http://www.rapidshare.com');
link.href = link.href.replace("http://www.zid*du.com", 'http://www.ziddu.com');
到
换行
link.href = link.href.replace("http://www.rapid*share.com", 'http://www.rapidshare.com');
link.href = link.href.replace("http://www.zid*du.com", 'http://www.ziddu.com');
到
再次用字符串“”替换第二行。请注意,将*更改为%2A,并将单词“禁止完成但不工作”中的小写字母“f”更改为url“”不更改为“似乎对我有用。我将鼠标悬停在rapidshare文本上,它会显示www.rapidshare.com。您可能链接了错误的fiddle。哪个链接?我已将此行更改为link.href=link.href.replace(“*share.com)”;更改为link.href=link.href.replace(“,”);请参阅,未工作注意结尾处的“gi”选项。这似乎可以在firefox中使用。link.href.replace(“,”);再次将第二行替换为字符串“”。请注意,将*更改为%2A,并将单词“禁止完成”中的小写“f”,但不工作请参见url“”不更改为“似乎对我有用。我将鼠标悬停在rapidshare文本上,它会显示www.rapidshare.com。您可能链接了错误的fiddle。哪个链接?我已将此行更改为link.href=link.href.replace(“*share.com)”;更改为link.href=link.href.replace(“,”);请参阅,未工作注意末尾的“gi”选项。这似乎使它在firefox.link.href.replace(“,”)中工作;