找到给定标记的第一个链接并打开它(userscript)

时间:2016-03-03 20:58:55

标签: javascript href url-redirection userscripts

这似乎是一个简单的问题,我仍然无法找到解决方法。

我想为网上商店写一个关于我打开网站的下一步的内容(基本上是彼此之间的项目列表)。

  • 检查自上次访问以来是否有新项目 (在网站的HTML中,他们班上会有一个“新”标记) 如果它找到带有新标签的1个或多个项目,请转到下一步(否则什么都不做)

  • 将此主页重定向到带有“新”标记的第一个链接

因此,当我打开http://mywebsite.com/时,我应该在此示例中立即重定向到http://mywebsite.com/forsale/100009/。 但我不知道网址是什么,这就是脚本需要检查链接的原因。只有我需要的第一场比赛(新项目总是在顶部)。不旧(没有新标签),而不是第一个之后/之后的新项目。

这就是网站的来源:

<div class="item new "  id="item_0" style="">
  <div class="item_click_overlay">
    <a href="http://mywebsite.com/forsale/100009/">
    <img src="http://mywebsite.com/pics/100009.gif">
    </a>
  </div>
</div>

<div class="item new "  id="item_1" style="">
  <div class="item_click_overlay">
    <a href="http://mywebsite.com/forsale/100007/">
    <img src="http://mywebsite.com/pics/100007.gif">
    </a>
  </div>
</div>

<div class="item  "  id="item_2" style="">
  <div class="item_click_overlay">
    <a href="http://mywebsite.com/forsale/100006/">
    <img src="http://mywebsite.com/pics/100006.gif">
    </a>
  </div>
</div>

<div class="item  "  id="item_3" style="">
  <div class="item_click_overlay">
    <a href="http://mywebsite.com/forsale/100002/">
    <img src="http://mywebsite.com/pics/100002.gif">
    </a>
  </div>
</div>

2 个答案:

答案 0 :(得分:2)

你的意思是这样的吗?

var newLink = $( ".item.new:first" ).find('a:first').attr('href');
window.location.replace(newLink);

或者没有jQuery:

var newLink = document.getElementsByClassName('item new')[0].getElementsByTagName('a')[0].href;
window.location.replace(newLink);

答案 1 :(得分:0)

稍微缩短了M.D。的解决方案,在此发布,因为这也有效:

document.getElementsByClassName('item new')[0].getElementsByTagName('a')[0].click();