找到具有给定标签的第一个 link 并打开它(用户脚本)
Find the first link with given tag and open it (userscript)
这似乎是一个简单的问题,但我仍然无法找到解决方法。
我想为网上商店编写一个 greasemonkey 用户脚本,当我打开他们的网站时接下来要做什么(基本上是一个项目列表)。
检查自从我上次访问以来是否有任何新项目
(在站点的 html 中,他们的 class 中会有一个 "new " 标记)
如果它找到 1 个或多个带有新标签的项目,请转到下一步(否则什么也不做)
使用 "new " 标签将此主页重定向到第一个 link
所以当我在这个例子中打开http://mywebsite.com/ I should be redirected immediately to http://mywebsite.com/forsale/100009/。
但我不知道 url 是什么,这就是脚本需要检查 link 的原因。只有我需要的第一场比赛(新项目总是在最前面)。不是旧的(没有新标签)也不是新的项目 under/after 第一个。
这是网站源代码的样子:
<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>
你的意思是这样的?
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);
稍微缩短了 M.D. 的解决方案,张贴在这里,因为这也有效:
document.getElementsByClassName('item new')[0].getElementsByTagName('a')[0].click();
这似乎是一个简单的问题,但我仍然无法找到解决方法。
我想为网上商店编写一个 greasemonkey 用户脚本,当我打开他们的网站时接下来要做什么(基本上是一个项目列表)。
检查自从我上次访问以来是否有任何新项目 (在站点的 html 中,他们的 class 中会有一个 "new " 标记) 如果它找到 1 个或多个带有新标签的项目,请转到下一步(否则什么也不做)
使用 "new " 标签将此主页重定向到第一个 link
所以当我在这个例子中打开http://mywebsite.com/ I should be redirected immediately to http://mywebsite.com/forsale/100009/。 但我不知道 url 是什么,这就是脚本需要检查 link 的原因。只有我需要的第一场比赛(新项目总是在最前面)。不是旧的(没有新标签)也不是新的项目 under/after 第一个。
这是网站源代码的样子:
<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>
你的意思是这样的?
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);
稍微缩短了 M.D. 的解决方案,张贴在这里,因为这也有效:
document.getElementsByClassName('item new')[0].getElementsByTagName('a')[0].click();