0

我想知道如何将页面中的每个 .gif 图像替换为我已经拥有的图像 url。我已经看过很多解决方案,但没有一个可以帮助我。

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

那么有人知道该怎么做吗?JS pure 会更好,因为我无法让 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')}
}
4

4 回答 4

1

看看这条线var image_png_src = image_png_src.replace(".gif", "image.jpg");image_png_src尚未定义,但您尝试调用替换属性。您可能想要使用的任何方式image_gif_src

var image_png_src = image_gif_src.replace(".gif", "image.jpg");
于 2013-04-19T02:58:23.953 回答
1

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

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;
}

注意image_png_src.replacefor 循环的第二行是如何被替换为image_gif_src.replace? 您试图对错误的变量进行替换。另外,我"image.jpg"在您的原始示例中进行了更改,只是".jpg"因为我假设您只是想更改扩展名,而不是将“图像”一词附加到您要更改的任何图像的末尾。

如果您想将每个 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";
        }
    }
于 2013-04-19T02:58:58.387 回答
1

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();可能会有所帮助。

于 2013-04-19T03:26:11.157 回答
0

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

var theImages = document.getElementsByTagName('img');

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

感谢所有帮助过的人。

于 2013-04-19T03:22:09.437 回答