크롬에서 자동으로 제거하는 방법요소?

크롬에서 자동으로 제거하는 방법요소?

이에 의해 주어진 접근법우편크롬이 자동으로 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

그리고 브라우저/자바스크립트의 버전에 따라 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();
})();

관련 정보