2012-09-24 30 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。