【问题标题】:How to remove all `iframe` tags that are only in the current webpage?如何删除仅在当前网页中的所有“iframe”标签?
【发布时间】:2018-07-22 11:40:40
【问题描述】:

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

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

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

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

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

似乎通过删除我网页中的所有iframe标签,我已经在我的网页中以模式或“子网页”形式出现的其他网页中删除了它们。

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

更新

我更喜欢纯香草的方式。

【问题讨论】:

  • 所以您的所有页面都在同一个文档中?如果是这样,您可能应该有指示当前页面的类,如果是这样,您可以使用document.querySelectorAll('.current-page iframe');

标签: javascript html loops iframe ecmascript-2016


【解决方案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();
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-15
    • 2011-09-18
    • 2012-10-11
    • 1970-01-01
    • 2020-11-12
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多