Удалить ссылку добавленную сторонним скриптом
На сайте есть скрипт:
<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, но все бесполезно. Зато в консоли браузера все работает. С другими элементами на сайте так же проблем нет.
Ответы (1 шт):
Через 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]);
}