我的一个 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/