Удалить ссылку добавленную сторонним скриптом

Рейтинг: 1Ответов: 1Опубликовано: 26.01.2023

На сайте есть скрипт:

<script id="signupScript" src="//static.ctctcdn.com/js/signup-form-widget/current/signup-form-widget.min.js" async="" defer=""></script>

который добавляет ссылку в код страницы. Ее необходимо удалить. Я попытался сделать это с помощью такого кода:

let link = document.querySelector('a[rel="nofollow"]');

window.addEventListener('DOMContentLoaded', ()=>{
    console.log(link);
    link.innerHTML = "";
});

но консоль вместо ссылки выдает null. Пробовал ставить код непосредственно в код страницы после нужной ссылки, пробовал менять селектор, убирал async defer, но все бесполезно. Зато в консоли браузера все работает. С другими элементами на сайте так же проблем нет.

Ответы

▲ -2

Через jQuery .remove():

$("#signupScript").remove();

Этот код найдет элемент с id "signupScript" и удалит его из DOM.

Или через Vanilla JavaScript:

var script = document.getElementById("signupScript");
script.parentNode.removeChild(script);

А если скрипт добавляется на страницу после ее загрузки, то попробуйте это:

document.addEventListener("DOMContentLoaded", function() {
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].getAttribute("src");
if (src != null && src.indexOf("ctctcdn.com") !== -1) {
scripts[i].parentNode.removeChild(scripts[i]);
}
}
});

Если вам нужно удалить только ссылку, созданную скриптом, а не сам скрипт, можно использовать JavaScript или jQuery для поиска элемента с ссылкой и удаления его из DOM. Например, если ссылка добавляется как тег <a> с классом "ctct-link", можно использовать следующий код:

$(".ctct-link").remove();

Или использовать Vanilla JavaScript:

var links = document.getElementsByClassName("ctct-link");
while (links.length > 0) {
    links[0].parentNode.removeChild(links[0]);
}

Если вы не знаете какой класс или ID у ссылки, которую вы хотите удалить, можете поискать ее по содержимому. Например, если ссылка имеет определенный текст, можно использовать следующий код:

var links = document.querySelectorAll("a");
for(var i=0;i<links.length;i++){
    if(links[i].textContent=="Unsubscribe")
    links[i].parentNode.removeChild(links[i]);
}