将特定筛选的HREF值选择的所有实例转换为另一个值的脚本

时间:2016-08-25 15:04:00

标签: javascript html href greasemonkey

由于Firefox无法在新标签中打开链接,如果它们将HREF标记转移到某个功能,可能会使用脚本来转换它们;即实际的HREF。

我可以看到foo的作用;

function foo(x) { self.location.href = 'page.asp?ID=' + x }

所以我需要改变所有的实例;

<a href="javascript:foo(12354)">

<a href="page.asp?ID=12354">

其中12354是变量,唯一需要修改的HREF标签是那些调用函数foo的标签吗?

等等;

var anchors = document.querySelectorAll('a');

for(var i=0;i<anchors.length;i++)
{
    if(anchors[i].href includes 'foo' then
    {
      val1 = get the value within the parenthesis; i.e. 12354
      anchors[i].href = "page.asp?ID=" + val1 
    }

}

1 个答案:

答案 0 :(得分:1)

枚举foo属性中包含href文字的链接,提取ID并指定新值:

[].forEach.call(document.querySelectorAll('a[href^="javascript:foo"]'), function(a) {
    var id = a.href.match(/\d+/)[0];
    a.setAttribute('href', 'page.asp?ID=' + id);
});