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

How to remove all `iframe` tags that are only in the current webpage?

我有一个包含各种 iframe 标签的网页。

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

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

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

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

似乎通过删除我网页中的所有 iframe 标签,我已经删除了其他网页中显示为模态或 "sub-webpages" 的我的网页。

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

更新

我更喜欢纯香草的方式。

您可以使用 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();
  }
}