![如何让 Chrome 自动删除元素?](https://linux22.com/image/1604891/%E5%A6%82%E4%BD%95%E8%AE%A9%20Chrome%20%E8%87%AA%E5%8A%A8%E5%88%A0%E9%99%A4%E5%85%83%E7%B4%A0%EF%BC%9F.png)
该方法给出邮政chrome 自动删除 html 标头时效果很好。不过在处理横幅时会失败。
以下是横幅的 HTML 代码
<div id="js-gdpr-consent-banner">
这是在 TamperMonkey 中运行的代码。
// ==UserScript==
// @name New Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @grant none
// @include http://*
// @include https://*
// ==/UserScript==
(function() {
'use strict';
var elems = document.getElementsByTagName('header');
elems[0].parentNode.removeChild(elems[0]);
var elems1 = document.getElementsById('js-gdpr-consent-banner');
elems1[0].parentNode.removeChild(elems1[0]);
})();
我错过了什么?
答案1
应该只有一个具有该 Id 的元素,您应该使用 getElementById(不是复数,它不存在)
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById
根据浏览器/javascript 的版本,您只需执行 elems1.remove() 即可删除它
https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove
完整代码如下
// ==UserScript==
// @name New Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @grant none
// @include http://*
// @include https://*
// ==/UserScript==
(function() {
'use strict';
var elems = document.getElementsByTagName('header');
elems.item(0).remove();
var elems1 = document.getElementById('js-gdpr-consent-banner');
elems1.remove();
})();