0

我对 javascript 有非常基本的了解,并设法创建了一个小书签来上一个子目录并替换目录名称。

代码:

javascript:(function(){var pathArray=window.location.pathname.split('/');var newPathname=pathArray[0]+"/"+pathArray[1]+"/"+pathArray[2]+"/"+pathArray[3]+"/"+pathArray[4]+"/s2450-k/";document.location.href=newPathname;})()

基本上,它的作用是分解 Blogspot、Picasaweb 或 Google+ 相册上图像的 URL,并将其替换为最大尺寸(最大 2450x2450)

所以图片网址:

http://www.website.com/SubD1/SubD2/SubD3/SubD4/s640/blah.JPG

转换为:

http://www.website.com/SubD1/SubD2/SubD3/SubD4/s2450-k/

现在,这仅适用于我在使用小书签之前使用“在新选项卡中打开图像”选项,因为我使用的是document.location

我想直接在网页/博客上查看图片,而不必单独打开每张图片。

我正在寻求帮助,以找出如何专门识别标签并通过书签在页面上内联运行上述功能,而不必先单独打开每个图像?

另外,我不确定如何只更改我感兴趣的图像,而不是页面上的所有图像,因为如果我盲目地这样做,徽标和背景之类的东西会损坏。我当然不介意,但我在这里的次要目标是学习如何识别哪个是哪个,并使其无缝。

也许一旦我运行小书签,我可以捕获 onclick 并以某种方式仅在鼠标光标下的元素上应用该功能?

4

2 回答 2

1

您可以使用 CSS 属性选择器仅选择要更改的图像,然后您可以遍历这些图像并将您的功能仅应用于相关图像。

var images = document.querySelectorAll('img[src*="http://common.part.of.image.src"]')

Array.prototype.forEach.call(images, function (img) {
    img.src = yourFunctionThatChangesUrls(img.src)
})

document.querySelectorAll在现代浏览器中可用,并允许您选择页面上与给定选择器匹配的所有元素。

假设您尝试更改的图像具有共同的 url 部分,您可以使用*=属性选择器。这意味着[src*="foo"]将匹配任何与 src 包含 foo 任何地方的东西,还有其他可能有用的东西。

一旦你有了你的图像,你就可以在每个匹配的元素上使用你的函数。

于 2013-01-04T12:31:08.370 回答
0

存在document.getElementByTagName('img')返回<img>页面上所有 s 的 ;src现在可以使用您在问题中编写的例程修改属性(显然您必须检查URL您是否感兴趣,可能在域部分使用正则表达式)。

于 2013-01-04T12:17:43.733 回答