如何找出点击元素是否会导致新页面?

时间:2017-01-04 14:22:44

标签: javascript jquery

我有一个div如下:

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

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

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

现在我想在我的网页中找到所有这些元素,点击它们会导致另一个页面。我也希望找到这些网页的网址并将其打印到控制台。

使用JS / Jquery可以实现吗?

1 个答案:

答案 0 :(得分:1)

在完全加载的页面上,您可以递归遍历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/

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