2012-09-24 32 views
-1

我正在尝试创建一个onkeydown事件,该事件会自动将特定网站上的图片库移动到下一张图片或后面。问题是,链接结构没有得到有效的结构。确定页面上是否存在特定图片/链接

因此,基本上,我试图在userscript中查找是否要单击返回或前进的图像存在于页面上,并使用if语句来确定后退/前进动作(左箭头/右键盘上的箭头分别),实际上可以做

我怎么会去判断是否表示在页面上的图像(S)存在

回答

0

假设你正在使用jQuery,这样简单的事情为:?

$('img[src="/path/to/left-arrow-picture.jpg"]') 

会做,或​​者如果t嗨他们有一个特定的类,

$('img.prevclass') 

会工作。如果你只在普通的JavaScript的时候,你可以用

var imgs = document.getElementsByTagName('img'); 
for(var i = 0; i < imgs.length; i++) { 
    if (i.src == '/path/to/left-arrow-picture.jpg') { 
     ... 
    } 
} 
0

通常所有的画廊中的图像阵列举行模拟这一点,所以一个典型的行为是环周围,所以当它在过去的形象,用户想要去下一个,画廊去第一个,而反之亦然,例如

var currentImage = 0; 
var numberOfImages = imageArray.length; 

if (<user wants next image>) { 
    currentImage = ++currentImage % numberOfImages; 

} else if (<user wants previous image>) { 
    currentImage = (--currentImage + numberOfImages) % numberOfImages; 
} 

我不知道你是如何实现的画廊,但你应该能够以某种方式应用上述逻辑。

如果您正在查找具有特定src值的图像,请按照MarcB的建议对它们进行循环。请注意,getElementsByTagName不需要,有一个document.images收集准备就绪。

另请注意,在某些浏览器中,src属性将是完整路径,但在其他(较旧)的浏览器中只是属性值。所以更好只是为了匹配实际的图像名称。

+1

这是一个'userscripts'问题,所以OP没有实现图库,可能无法控制目标页面。正如目前的问题所示,唯一的浏览器应该是Chrome(如果它被误标记,则为Firefox)。对于其他浏览器,比如Opera,OP通常足够清楚地说明这一点。 –

+0

@BrockAdams这是迷糊,它也包括FFox。 –

0

首先,确定图像的CSS路径或src属性。 (该src可能不存在,如果网站使用精灵。或者,它可能不是唯一的。)

图片您可以右键单击并选择检查元素,并使用开发者工具或Firebug帮助确定这一点。
链接到目标页面,或粘贴适当的HTML代码片段,如果你想我们的帮助选择选择器。

然后你可以使用这样的代码:

普通的JavaScript:

  • var lftArrwImg = document.querySelector ("#galleryControls div.foo a img"); 
    if (lftArrwImg) { 
        // DO YOUR LEFT ARROW STUFF HERE. 
    } 
    

    或者:

    var lftArrwImg = document.querySelector ("img[src='/some_path/left_arrow.gif']"); 
    if (lftArrwImg) { 
        // DO YOUR LEFT ARROW STUFF HERE. 
    } 
    


的jQuery:

  • if ($("#galleryControls div.foo a img").length) { 
        // DO YOUR LEFT ARROW STUFF HERE. 
    } 
    

    或者:

    if ($("img[src='/some_path/left_arrow.gif']").length) { 
        // DO YOUR LEFT ARROW STUFF HERE. 
    } 
    

当心,一些网站可能具有图像始终存在,但隐藏它时,它的不是应用程序icable。