查找图像链接并单击JavaScript

时间:2014-01-10 23:15:20

标签: javascript

我正在自动化网站上的一些东西。我需要检查页面上是否有“下一步”按钮,然后单击它。这是HTML。

<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;
    }

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

由于您可以找到图像,因此您可以使用以下方法自动执行单击:

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

答案 2 :(得分: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

您可能真正想要的是在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);
}