油猴脚本的替换问题

2013-12-16 12:31:54 +08:00
 Neilyo
最近使用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);
  }
7269 次点击
所在节点    JavaScript
7 条回复
acecode
2013-12-16 12:36:20 +08:00
onload 事件应该是正常加载完毕后才会触发,都被墙了,应该不会加载成功吧,换个onError 试试吧
ETiV
2013-12-16 12:47:28 +08:00
js 的str replace,只会替换第一条匹配

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

另外可以只选择所有的img节点,替换每一个的src
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
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
2013-12-18 16:16:09 +08:00
@ETiV 嗯,我也觉得应该是用正则式的...但是不会啊.
Neilyo
2013-12-18 16:17:20 +08:00
@muzuiget 谢谢这位朋友,自己 研究了一会还是没搞明白.辛苦你了
Neilyo
2013-12-18 16:17:55 +08:00
@1423 测试可行.有一点不完美的就是组图的无效...不知道为什么.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/93332

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX