【问题标题】:Select random URL on webpage using Chrome console使用 Chrome 控制台在网页上选择随机 URL
【发布时间】:2020-06-22 14:35:48
【问题描述】:

我正在尝试制作一个可以从 Chrome 控制台运行的简单 javascript 命令。我有一个网页,其中充满了所有遵循相同格式的链接,例如:

<a href="e/example.html">Example</a>

这会将其带到 www.site/e/example.html

我希望能够随机选择它们并点击链接。我尝试过使用正则表达式,但无法弄清楚如何在控制台中使用它。如有任何帮助,我们将不胜感激!

这是我做的简单表达式(只是提取了“e/example”部分):

$ <a href="(.+?).html">.+?<\/a>

【问题讨论】:

    标签: javascript regex google-chrome console


    【解决方案1】:

    您可以使用document.getElementsByTabName 并选择页面上的所有a 元素。我想,它比正则表达式更有弹性。

    https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName

    【讨论】:

    • 谢谢!这非常有效。如果有人想知道我这样做并使用与其他人提到的相同方法随机选择了一个: var urls = document.getElementsByTagName('a'); this.document.location = urls[Math.floor(Math.random() * urls.length)];
    【解决方案2】:

    首先选择所有带有querySelectorAll的链接:

    let links = document.querySelectorAll("a");
    

    然后选择一个随机值,randomIndex 返回一个介于 0 和数组长度之间的 Integer。

    let randomIndex = Math.floor(Math.random() * links.length);
    let randomLink = links[randomIndex].href;
    

    randomLink 现在应该在网页上包含一个随机选择的链接。

    【讨论】:

      【解决方案3】:

      您可以做的是使用document.querySelectorAll 列出所有a 元素。然后,您可以遍历它们并提取它们的 href 属性,如下所示:

      const links = [...document.querySelectorAll("a")].map(x => x.href);
      

      然后从这个数组中随机选择一个元素:

      const link = links[Math.floor(Math.random() * links.length)];
      

      【讨论】:

        猜你喜欢
        • 2010-09-30
        • 2013-04-23
        • 1970-01-01
        • 2017-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-06
        • 1970-01-01
        相关资源
        最近更新 更多