2014-11-05 48 views
0

我需要的Greasemonkey脚本找到像所有链接:的Greasemonkey脚本重写链接

http://legendas.tv/download/545832dfb67eb/American_Dad/American_Dad_S11E02_HDTV_x264_LOL_AFG_FUM_DIMENSION 

和重写他们这样的:

http://legendas.tv/downloadarquivo/545832dfb67eb 

这是我的剧本,但它不是加工。

// ==UserScript== 
// @name  LTV 
// @namespace legendas.tv 
// @include  http://legendas.tv 
// @version  1 
// @grant  none 
// ==/UserScript== 

var links = document.getElementsByTagName("*"); //array 
var regex = /^(http:\/\/)(legendas\.tv\/download\/)(.{13})(.*)$/i; 
for (var i=0,imax=links.length; i<imax; i++) { 
    links[i].href = links[i].href.replace(regex,"$1.legendas.tv\/downloadarquivo\/$3\/"); 
} 

回答

2

你应该考虑使用jQuery。

// @include  http://*legendas.tv/ 
// @require  https://code.jquery.com/jquery-2.1.1.min.js 
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js 
// @grant  GM_addStyle 
// ==/UserScript== 

//wait it load 
waitForKeyElements (".film", dlink); 

//change headers links 
$(".item a").each (function() { 

    var jThis = $(this); 
    var href = jThis.prop("href"); 
    var re = /[\w]+[\d]+/; 
    var code = href.match(re)[0]; 
    var nLink = "/downloadarquivo/" + code; 
    jThis.prop("href", nLink); 

}); 

//change download buttons links 
function dlink() { 

    $(".bt_seta_download a").each (function() { 

     var jThis = $(this); 
     var href = jThis.prop("href"); 
     var re = /[\w]+[\d]+/; 
     var code = href.match(re)[0]; 
     var nLink = "/downloadarquivo/" + code; 
     jThis.prop("href", nLink); 

    }); 

}  

加载页面后页面加载的一些元素,所以你必须检查它是否在那里与他们一起工作。如果你愿意,你可以用waitForKeyElements触发你的代码,但是我没有测试它。

0

一切看起来都很好。
有些事情要看:

^$它们匹配的href?

解析双引号不会从\/

"$1.legendas.tv\/downloadarquivo\/$3" 

更改删除逃逸的它 - >

"$1.legendas.tv/downloadarquivo/$3"