I want to replace the src
attribute for all images matching a regex using Greasemonkey scripting.
Example:
Replace .gif
With .kooora/i/z3.gif
I have no experience in scripting but this is what I came up with:
var allImg=document.getElementsByTagName("img"), i=0, img;
var pattern = aff\.kooora\/([A-Za-z0-9/._]*);
while(img=allImg[i++])
{
result = pattern.exec(img);
if (result!=null)
img.src=img.src.replace(result, '/' + result);
}
It doesn't work.
I want to replace the src
attribute for all images matching a regex using Greasemonkey scripting.
Example:
Replace http://aff.kooora./i/z3.gif
With http://example./aff.kooora./i/z3.gif
I have no experience in scripting but this is what I came up with:
var allImg=document.getElementsByTagName("img"), i=0, img;
var pattern = aff\.kooora\./([A-Za-z0-9/._]*);
while(img=allImg[i++])
{
result = pattern.exec(img);
if (result!=null)
img.src=img.src.replace(result, 'http://example./' + result);
}
It doesn't work.
Share Improve this question asked Apr 9, 2012 at 10:05 AbdullahAbdullah 431 silver badge3 bronze badges3 Answers
Reset to default 3Your regular expression is the problem, you need to wrap it in slashes (otherwise the interpreter has no clue that it should treat that as a regexp):
var allImg=document.getElementsByTagName("img"), i=0, img;
var pattern = /^http\:\/\/aff\.kooora\.\/(.*)$/;
while (img = allImg[i++])
{
if (img.src.match(pattern)) {
img.src = img.src.replace(pattern, 'http://example./aff.kooora./$1');
}
}
Just an alternative.
In this Greasemonkey script, ProxyLoadIMG, this is acplished without using regex.
It was created to load images through a proxy.
Only the images. Links and other content remains untouched.
var proxy = 'https://proxytea.appspot./'
for (var x=0; x<document.images.length; x++) {
imagem = document.images[x];
imagem.src = imagem.src.replace(location.protocol + '//', proxy);
}
http://aff.kooora./i/any.jpg bees https://proxytea.appspot./aff.kooora./i/any.jpg
http://aff.kooora./i/z3.gif bees https://proxytea.appspot./aff.kooora./i/z3.gif
and so on...
No RegEx needed :)
Use this:
function replaceImages(oldUrl, newUrl) {
var imgs = document.getElementsByTagName('img')
for (i = 0; i<imgs.length; i++) {
imgs[i].src = imgs[i].src.replace(oldUrl, remoteUrl)
}
}
replaceImages('http://aff.kooora./i/z3.gif', 'http://example./aff.kooora./i/z3.gif')
This is also great if you're working on a local version of a site and you can't be bothered to download all their image content