V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Neilyo
V2EX  ›  JavaScript

油猴脚本的替换问题

  •  
  •   Neilyo · 2013-12-16 12:31:54 +08:00 · 7281 次点击
    这是一个创建于 4003 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近使用tumblr的时候有些图片的地址被墙.想替换网址显示...自己搜索半天也不解....还是恳请大神们帮忙下吧.

    比如把

    https://*.media.tumblr.com/*

    批量替换成

    https://31.media.tumblr.com/*


    自己写了一个脚本.没效果....

    window.onload = function(){
      var str= document.body.innerHTML;
    while(str.indexOf("https://24.media.tumblr.com/")>-1)
      {
      str = str.replace("https://24.media.tumblr.com/","https://31.media.tumblr.com/");
      }
      document.write(str);
      }
    7 条回复    1970-01-01 08:00:00 +08:00
    acecode
        1
    acecode  
       2013-12-16 12:36:20 +08:00
    onload 事件应该是正常加载完毕后才会触发,都被墙了,应该不会加载成功吧,换个onError 试试吧
    ETiV
        2
    ETiV  
       2013-12-16 12:47:28 +08:00 via iPhone
    js 的str replace,只会替换第一条匹配

    想替换所有,replace第一个参数就需要是正则表达式,代g参数的

    另外可以只选择所有的img节点,替换每一个的src
    muzuiget
        3
    muzuiget  
       2013-12-16 12:59:59 +08:00
    你的思路完全错了,我直接替你写好了

    // ==UserScript==
    // @name Replace Image
    // @namespace test
    // @include http://www.v2ex.com/t/93332#reply2
    // @version 1
    // @grant none
    // ==/UserScript==

    var reg = new RegExp('/avatar/.*_normal.png');
    var images = document.querySelectorAll('img');
    var i, image;
    for (i = 0; i < images.length; i += 1) {
    image = images[i];
    if (image.src.match(reg)) {
    image.src = image.src.replace('_normal', '_large');
    }
    }

    这是替换这个贴子的头像为大头像的脚本,你自己举一反三。
    1423
        4
    1423  
       2013-12-16 13:07:41 +08:00
    https://chrome.google.com/webstore/detail/redirector/lacckjdlmkdhcacjdodpjokfobckjclh
    匹配^https://(.*)?\.media\.tumblr\.com/(.*)
    被替换式^https://(.*)?\.media\.tumblr\.com/(.*)
    替换式https:\/\/31.media.tumblr.com/$2
    内容过滤选图片

    估计没错,测试可行
    Neilyo
        5
    Neilyo  
    OP
       2013-12-18 16:16:09 +08:00
    @ETiV 嗯,我也觉得应该是用正则式的...但是不会啊.
    Neilyo
        6
    Neilyo  
    OP
       2013-12-18 16:17:20 +08:00
    @muzuiget 谢谢这位朋友,自己 研究了一会还是没搞明白.辛苦你了
    Neilyo
        7
    Neilyo  
    OP
       2013-12-18 16:17:55 +08:00
    @1423 测试可行.有一点不完美的就是组图的无效...不知道为什么.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:58 · PVG 06:58 · LAX 14:58 · JFK 17:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.