如何用Javascript替换页面中的每个gif图像

How to replace every gif images in the page for another image with Javascript

本文关键字:gif 图像 何用 Javascript 替换 换页      更新时间:2023-09-26

我想知道如何在我已经拥有的图像url页面中替换每个。gif图像。我已经想出了许多解决办法,但没有一个能帮助我。

编辑:删除旧代码,因为它会引起一些混乱

有人知道怎么做吗?纯JS会更好,因为我不能让jQuery正常工作与Tampermonkey。

编辑2:设法获得另一种代码的工作,但它不取代图像的url,只是添加到它。

    var theImages = document.getElementsByTagName('img');
    for(i=0; i<theImages.length; i++) {
        if(theImages[i].src.indexOf('.gif') != -1) {
        theImages[i].src = ('imageurl.jpg')}
}

看这一行var image_png_src = image_png_src.replace(".gif", "image.jpg");image_png_src尚未定义,但您尝试调用replace属性。无论如何,你可能想用image_gif_src代替。

var image_png_src = image_gif_src.replace(".gif", "image.jpg");

假设您的图像具有相同的名称,并且您只想更改扩展名,那么您的代码几乎是正确的,您只是犯了一个小错误。下面是正确的版本:

var images = document.getElementsByTagName("img");
for (var i = 0; i < images.length; i++) {
    var image_gif_src = images[i].src;
    var image_png_src = image_gif_src.replace(".gif", ".jpg");
    images[i].src = image_png_src;
}

注意到for循环第二行中的image_png_src.replace是如何被image_gif_src.replace取代的?你试图在错误的变量上做替换。此外,我在原始示例中将"image.jpg"更改为".jpg",因为我假设您只意味着更改扩展名,而不是将单词"image"附加到您正在更改的任何图像的末尾。

如果您想将每个gif更改为其他图像,而不仅仅是更改扩展名,这段代码可以做到:

images[i].src = image_png_src;
for (var i = 0; i < images.length; i++) {
        if( images[i].src.indexOf(".gif") > -1){
             images[i].src = "New Image.jpg";
        }
    }

jquery方法

$("img").each(function(){
$(this).attr('src',$(this).attr('src').replace(".gif", ".jpg"));
});
在Xmonkey中使用jquery或其他js库,只需添加

// @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js==UserScript==头文件中。在冲突的情况下,打开jQuery.noConflict();可能会有所帮助。

所以我用下面的脚本让它工作:

var theImages = document.getElementsByTagName('img');
for(i=0; i<theImages.length; i++) {
    if(theImages[i].src.indexOf('.gif') != -1) {
    theImages[i].src = ('imageurl.jpg')}
}

感谢所有帮助过我的人。