2014-01-10 92 views
0

我在網站上自動化了一些東西。我需要檢查頁面上是否有「下一步」按鈕,然後點擊它。這是HTML。查找圖像鏈接並點擊JavaScript

<a href="javascript:goToPage(2);"><span class="txt_purple"></span><img align="absmiddle" src="/icon_next.jpg" border="0" /></a> 

我可以使用getElementsByTagName('img')來查找圖像,然後如何執行點擊操作?

使用答案更新:

添加一個ID是不可能在這種情況下。我無法控制網頁。這是別人的網站,所以我必須處理已經存在的內容。這是我做過什麼:

var e = document.getElementsByTagName('img'); 
    for (var i = 0; i < e.length; i++) { 
    if (e[i].hasAttribute('src') && e[i].getAttribute('src') == '/icon_next.jpg') { 
     e[i].click(); 
     break; 
    } 
+0

可能更好,直接按照我的第二次更新來定義onclick。 – acarlon

回答

0

「我需要檢查,如果‘下一步’按鈕會出現在頁面上」

如果你想找出一個元素是否存在:

if(document.getElementById("someID")){ 

「然後點擊它」

編輯1

this fiddle - 點擊事件引發的頁面加載。您也可以直接點擊<a>

這比您想象的還要多一點,因爲您試圖調用點擊<a>。這些不保證有一個點擊事件處理程序。見this answer。你需要這樣的東西:

var elem = document.getElementById('myNext'); 
if(elem) 
{ 
    var event = document.createEvent("MouseEvents"); 
    event.initEvent("click", true, false); 
    elem.dispatchEvent(event); 
} 

但是,這是一個黑客。您可能只想直接在a上定義onclick並調用該函數。

編輯2

你可能真正想要的是定義在A HREF本身的onclick。看到這個updated fiddle。該函數在頁面加載時觸發,以及在每種情況下單擊傳入元素的a

HTML:

<a id="myNext" href="#" onclick="clickAction(this)"> 
    <span class="txt_purple"></span> 
    <img align="absmiddle" src="<yoursource>" border="0"/> 
</a> 

然後調用相應功能:

function clickAction(element) 
{ 
    alert(element); 
} 

var elem = document.getElementById('myNext'); 
if(elem) 
{ 
    clickAction(elem); 
} 
0

既然你能找到的圖片,您可以通過使用自動點擊:

document.getElementById('iwanttoclickthis').click(); 
2

編輯

添加一個id圖像id=next

<a href="javascript:goToPage(2);"> 
    <span class="txt_purple"></span> 
    <img id="next" align="absmiddle" src="/icon_next.jpg" border="0" /> 
</a> 

然後用

document.getElementById("next").click() 
+0

這不是我問的。我不是在尋找一個onClick處理程序。我期待觸發點擊。 – Crypto

+0

我編輯了我的答案.. – Merlin