【问题标题】:How to get href from a hyperlink using Javascript [duplicate]如何使用Javascript从超链接中获取href [重复]
【发布时间】:2015-06-18 18:57:20
【问题描述】:

我正在为我使用的网站创建一个使用 Javascript 的 Tampermonkey 键盘导航脚本(我不拥有该网站,因此我自己无法对其进行任何更改)。如果网站有如下代码:

<a href="/page/2.html">Next »</a>

要获得下一页,如何通过在网站上搜索“下一页”来检索“/page/2.html”部分? 非常感谢您的宝贵时间!

编辑: 我以前做过这个,我知道我问的是可能的。我在上面列出了用于此代码的网站的唯一部分。我只希望使用内部 HTML “Next” 而没有别的。上面显示的正是网站 HTML 文件中的内容。

【问题讨论】:

  • 您需要使用更多页面结构(您没有向我们展示)来构造一个选择器(jQuery 或 CSS 或 XPath,按优先顺序),以获得正确的“下一个”链接。如果这是一部网络漫画,它们的范围从非常简单到正确的 PITA。 (提示,人们已经为许多网络漫画编写了热键脚本。)
  • 我以前做过这个,但我不记得怎么做了。我能够使用 Javascript(不是 jQuery、CSS、XPath 等)来搜索内部 HTML“下一步”,如果找到则单击。网站中唯一需要的部分正是我上面列出的部分
  • 没有。许多这样的页面有不止一个“下一个”链接,而且它们并不总是做同样的事情。编辑问题以符合 Stack Overflow 要求(MCVE、展示努力等)。

标签: javascript html tampermonkey


【解决方案1】:

我根本不建议这样做,因为在页面上的其他地方简单地键入“下一步”可能会破坏代码。如果页面中的元素有 id 属性,只需:
document.getElementById("idOfTheElement").getAttribute("href");

但如果你真的想搜索页面,你可以这样做:

function getNextHref() {
    var aTags = document.getElementsByTagName("a");
    for(var i=0; i<aTags.length; ++i) {
        if(aTags[i].search("Next") >= 0) {
            return aTags[i].getAttribute("href");
        }
    }
    return null;
}

请注意,element.getAttribute("href"); 会准确返回标签中键入的内容,而element.href 会返回解释后的完整链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多