Javascript 如何搜索href并打开部分url

Javascript 如何搜索href并打开部分url,javascript,firefox,greasemonkey,Javascript,Firefox,Greasemonkey,考虑到我的GM脚本运行的这个HTML示例,我想编写一个代码,从http://www.mycharactersID.com/ID=234223 在JavaScript得到234223之后,另一个ID出现在页面上。然后在新选项卡中使用不同的链接打开它们。我是说HTML中的所有ID 示例:window.open(“http://www.mycharactersID.com/TalkID=234223) Burada takılan 12 karakter Bulumanktadır. 不适用于:10

考虑到我的GM脚本运行的这个HTML示例,我想编写一个代码,从
http://www.mycharactersID.com/ID=234223

在JavaScript得到234223之后,另一个ID出现在页面上。然后在新选项卡中使用不同的链接打开它们。我是说HTML中的所有ID

示例:
window.open(“http://www.mycharactersID.com/TalkID=234223)

Burada takılan 12 karakter Bulumanktadır.


不适用于:100克拉的En fazla Listenmektedir.


谢谢。

以下是使用JQuery的解决方案:

$('table tr td a[href^="http://www.mycharactersID.com/ID="]').each(function(){
    var regExp=/id=(\d+)/i;
    var matches=$(this).attr('href').match(regExp);
    if(matches)
    {
        window.open('url/ID='+parseInt(matches[1]), w_name, w_params);
    }
});

它应该可以工作。

我不确定如何打开链接,但捕获数据很容易

var idArray = document.body.innerHTML.match(/"http:\/\/www\.mycharactersID\.com\/ID=([0-9]*)"/g); //captures the entire link
for(var i = 0; i < idArray.length; i++){
  idArray[i] = idArray[i].replace(/"http:\/\/www\.mycharactersID\.com\/ID=([0-9]*)"/, "$1");  //Now just the ID part
}
var-idArray=document.body.innerHTML.match(/“http:\/\/www\.mycharactersID\.com\/ID=([0-9]*)”/g)//捕获整个链接
对于(变量i=0;i
经过测试,似乎正在工作。

这是有效的

html


这里有一个完整的GM脚本,可以使用

请注意,它一次打开所有新选项卡。要按顺序打开,您需要将它们按顺序排队


为什么你的代码在问题的中间?你的意思是例如
http://www.mycharactersID.com/?ID=123222
?注意
字符。基本正确,但有3个问题:(1)选择器不够具体。通过测试所有链接,针对这样一个小/通用术语;很有可能会发现假阳性链接。(2) 如果没有匹配会发生什么?(一个例外!)。(3) 新url中可能会有一个额外的“id=”。调整一下代码,我会投票的。好多了+1因为我说过我会,但仍然有错误:
匹配[1]
将始终是未定义的,
parseInt('id=666')
NaN
,而不是666。看看其他答案中的正则表达式,寻找线索你能把你的脚本改成我的新html吗。我无法编辑它。当我编辑脚本时,İt不起作用:(完成。对于此类问题,选择节点选择器取决于页面的精确细节。因此,如果页面公开可见,请始终链接到该页面。或者,将页面的源保存到pastebin.com并链接到该页面(如果该页面不公开或需要注册).你真是个好人!谢谢你的帮助。每次我问什么,你都帮了我。谢谢你,先生!
var idArray = document.body.innerHTML.match(/"http:\/\/www\.mycharactersID\.com\/ID=([0-9]*)"/g); //captures the entire link
for(var i = 0; i < idArray.length; i++){
  idArray[i] = idArray[i].replace(/"http:\/\/www\.mycharactersID\.com\/ID=([0-9]*)"/, "$1");  //Now just the ID part
}
<a href="http://www.mydomain.com/ID=25645" onclick="OpenMyPage(this); return false;">Click HyperLink</a>
function OpenMyPage(hyperlink) {var source = hyperlink.attributes.href.value; var pattern = new RegExp("(\\d+)$"); source.match(pattern); alert(RegExp.$1);}
// ==UserScript==
// @name            _Open lots of tabs
// @include         http://mycharactersID.com/YOUR_PATH/*
// @include         http://www.mycharactersID.com/YOUR_PATH/*
// @require         http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
// ==/UserScript==

$("td > a[href*='CharacterID']").each ( function () {
    var ID  = this.href.match (/CharacterID=(\d+)$/i);
    if (ID  &&  ID.length > 1) {
        ID  = ID[1];
        window.open ("http://www.mycharactersID.com/TalkID=" + ID,  "_blank");
    }
} );