[英]Greasemonkey script to remove parameters from URL
我有这个网址:
http://website.com/wp-content/uploads/2014/11/this-is-an-image_0120(pp_w820_h548).jpg
我想删除URL中的参数,如下所示:
http://website.com/wp-content/uploads/2014/11/this-is-an-image_0120.jpg
Greasemonkey怎么可能?
var links = document.getElementsByTagName("a");
for(var i = 0, l = links.length; i < l; i++) {
var elements = links[i];
elements.innerHTML = document.body.innerHTML.replace(/(pp_w820_h548)/gi, '');
}
我也希望宽度和高度数字都是未知变量。 有时图像是png,所以删除后的所有内容(,再次添加“.jpg”到最后不是最佳解决方案。
抱歉! 我的意思是针对img元素,而不是a。 所以这是一个图像,而不是一个链接。
另外pp需要在那里,因为我只想在prophoto WP博客上删除。
所以,就是这样:
var links = document.getElementsByTagName("img");
for(var i = 0, l = links.length; i < l; i++) {
var images = links[i];
images.src= images.src.replace(/\(pp_w\d+_h\d+\)/gi, '');
}
UPDATE
该脚本仅适用于靠近视口的图像。 页面上的延迟元素仍然使用url中的加号字符串。
Greasemonkey是否有可能在物理上改变HTML,而不仅仅是在DOM中?
var links = document.getElementsByTagName("a");
for(var i = 0, l = links.length; i < l; i++) {
var a = links[i];
a.href= a.href.replace(/\(pp_w\d+_h\d+\)/gi, '');
}
示例: http : //jsfiddle.net/houp0qv0/
如果你真的不知道括号内会是什么(例如,如果pp_
前缀可能会改变),你可以使用:
var links = document.getElementsByTagName("img");
for(var i = 0, l = links.length; i < l; i++) {
var link = links[i];
link.src = link.src.replace(/\(.+\)/gi, '');
}
甚至:
link.src = link.src.replace(/\([a-zA-Z\d]+_[a-zA-Z\d]+_[a-zA-Z\d]+\)/gi, '');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.