javascript - 如何确定点击某个元素是否会进入新页面?

标签 javascript jquery

我有一个div,如下所示:

 <div id="toGoogle" onclick="window.location='https://www.google.com">Go to google</div>

点击此链接会将我带到一个网站(在本例中为 google.com)。

(当然这个点击方法可以在JS文件中而不是内联。)

现在我想找出我的网页中的所有此类元素,单击这些元素将进入另一个页面。我还想找出这些页面的 URL 并将它们打印到控制台。

使用JS/Jquery可以实现吗?

最佳答案

在完全加载的页面上,您可以递归遍历 DOM 搜索 onClick 和 href 属性。请参阅此处的 jsfiddle 示例(并查看日志)。

var walkDOM = function(node) {
  try {
    if (node.getAttribute("onClick") != null) {
      console.log(node.getAttribute("onClick"))
    }
    if (node.getAttribute("href") != null) {
      console.log(node.getAttribute("href"))
    }
  } catch (err) {
    console.log("endpoint")
  }
  node = node.firstChild;
  while (node) {
    walkDOM(node);
    node = node.nextSibling;
  }
};

var fb = document.getElementById('facebook')
fb.setAttribute("onclick", "console.log('click')")

var yt = document.getElementById('youtube')
yt.setAttribute("href", "www.youtube.com")

walkDOM(document.documentElement);

https://jsfiddle.net/26wh7zeL/9/

如果需要,您可以对网址进行正则表达式匹配。

关于javascript - 如何确定点击某个元素是否会进入新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466119/

相关文章:

javascript - 有什么方法可以同步解决 promise 吗? (或者可以的替代库)

javascript - 使用另一个 css 类在元素内命中一个 css 类

javascript - 如何使用ajax响应JSON数据?

javascript - jQuery 库文件中的 "Illegal character",即使在任何地方都没有不可见字符或缺少引号

javascript - 使用indexOf获取数组集合中数组的索引(Javascript)

javascript - 目录未创建

javascript - addClass 上的容器折叠

javascript - 如何在进行另一个函数调用时停止执行 javascript/jquery

javascript - 日期选择器弹出窗口不起作用

javascript - 如何将颜色值从一个 div 复制到另一个?