我的一个 friend 将她过去一年左右拍摄的大约20张左右的自然照片上传到了webshots.com,但是,我刚刚为她购买了一个付费的Flickr帐户作为生日礼物,我想下载她的所有照片网络快照中的照片,并在她收到有关帐户升级的电子邮件后将它们准备好供她上传到Flickr(她不在国外-无法访问互联网)。

我没有访问她的webshots帐户的权限,因此我求助于Greasemonkey和DownThemAll将其图像保存到桌面上的文件夹中。

我对javascript有点陌生,可用于Greasemonkey的所有“用户脚本”都不能完全满足我的需求。

加载图库页面时:

(http://[category].webshots.com/album/[album-id]),

我需要使用Greasemonkey脚本来查找图像的所有链接:
(http://[category].webshots.com/photo/[photo-page-id])

并重写它们以反射(reflect)此方案:
(http://community.webshots.com/photo/fullsize/[photo-page-id])

这容易做到吗?看起来应该如此,但我似乎无法正确地做到这一点。

这是我当前无法使用的Greasemonkey脚本:
// ==UserScript==
// @name           Webshot Gallery Fixer
// @namespace      WGF
// @description    Fixes webshot galleries
// @include        http://*.webshots.com/*
// ==/UserScript==

var links = document.getElementsByTagName("a"); //array
var regex = /^(http:\/\/)([^\.]+)(\.webshots\.com\/photo\/)(.+)$/i;
for (var i=0,imax=links.length; i<imax; i++) {
   links[i].href = liks[i].href.replace(regex,"$1community$3fullsize/$4");
}

最佳答案

var links = document.getElementsByTagName("a"); //array
var regex = /^(http:\/\/)([^\.]+)(\.webshots\.com\/photo\/)(.+)$/i;
for (var i=0,imax=links.length; i<imax; i++) {
   links[i].href = links[i].href.replace(regex,"$1community$3fullsize/$4");
}

应该做到的

关于javascript - 使用Greasemonkey和FireFox重写部分链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3232992/

10-10 00:26