如何删除仅在当前网页中的所有“ iframe”标签?

时间:2018-07-22 11:40:40

标签: javascript html loops iframe ecmascript-7

我有一个网页,上面带有各种iframe标签。

我想删除该网页上具有可见内容的某个iframe,但是找不到用于它的选择器,所以我认为删除所有iframe会有所帮助:

var iframes = document.querySelectorAll('iframe');
for (var i = 0; i < iframes.length; i++) {
  iframes[i].remove();
}

但是,删除所有iframe标签带来了另一个问题:

每次我点击旨在打开模式(弹出窗口)的链接时,都会得到空白弹出窗口

似乎通过删除我网页中的所有iframe标签,我已经将其他网页中的它们标记为模式或“子网页”。

如何删除仅在当前网页中的所有iframe标签?

更新

我更喜欢采用全香草方式。

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery使用的表达式来测试元素是否可见:

function isVisible(elem) {
    return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
}

var iframes = document.querySelectorAll('iframe');
for (var i = 0; i < iframes.length; i++) {
  if (isVisible(iframes[i])) {
    iframes[i].remove();
  }
}