Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从链接中获取URL参数以在Greasemonkey脚本中形成新链接?_Javascript_Jquery_Greasemonkey - Fatal编程技术网

Javascript 如何从链接中获取URL参数以在Greasemonkey脚本中形成新链接?

Javascript 如何从链接中获取URL参数以在Greasemonkey脚本中形成新链接?,javascript,jquery,greasemonkey,Javascript,Jquery,Greasemonkey,我对jQuery和Greasemonkey很陌生,但我想改革一个URL 例如,假设: http://www.example.com/index.php?value1=blabla1&sid=blabla2&mid=blabla3 我想: link://www.example.com/blabla1/data/blabla2/blabla3.ext 我试过这样的代码: var sid=document.URL.substring(document.URL.indexOf('s

我对jQuery和Greasemonkey很陌生,但我想改革一个URL

例如,假设:

http://www.example.com/index.php?value1=blabla1&sid=blabla2&mid=blabla3
我想:

link://www.example.com/blabla1/data/blabla2/blabla3.ext

我试过这样的代码:

var sid=document.URL.substring(document.URL.indexOf('sid=')+15); 
// How do I set the length of blabla2 ? -7 ?

希望有人能理解我的意思,并能帮我一点忙。

使用正则表达式搜索来获取值。 如果您事先知道参数名称,那么它比看起来更简单

var searchableStr   = document.URL + '&';

var value1  = searchableStr.match (/[\?\&]value1=([^\&\#]+)[\&\#]/i) [1];
var sid     = searchableStr.match (/[\?\&]sid=([^\&\#]+)[\&\#]/i)    [1];
var mid     = searchableStr.match (/[\?\&]mid=([^\&\#]+)[\&\#]/i)    [1];
.
最后一位类似于:

var domain  = searchableStr.match (/\/\/([w\.]*[^\/]+)/i) [1];

var newlink = '//' + domain + '/' + value1 + '/data/' + sid + '/' + mid + '.ext';  
.

附言:如果你事先不知道名字,只需要稍微多做一点工作。

PPS:这是教育准则。在野外使用时,小心多余的空间和恶意数据。

谢谢你,布罗克。我知道情人的名字。页面上的每个图像都链接到“index.php?param=value1¶m2=……”。我现在尝试过,但不确定如何使用这些参数“重写”页面上的每个链接。除此之外,我认为您的示例将非常有效。:)您并没有询问每个链接,而是询问文档url。中途改变这个问题是不好的无论如何,对于每个链接,您都可以通过XPATH搜索或类似于
document.getElementsByTagName('a')
的搜索来获取它们。但是,您应该为此提出一个新问题,并发布一个指向相关网页的链接——或者至少包括一个相关链接代码的粘贴。标记此问题的答案,以增加下一个问题也会出现的可能性。对此表示抱歉:P非常感谢你的帮助,布罗克。我会通过一些阅读和测试来找出答案