#javascript
#javascript
Вопрос:
У меня есть код чего-то вроде этого:
line 041: <script src='http://blabla041' type='text/javascript'></script>
line 052: <script src='http://blabla052' type='text/javascript'></script>
line 063: <script src='http://blabla053' type='text/javascript'></script>
...
line 499: <script src='http://specificaddress' type='text/javascript'></script>
...
line 997: <script src='http://blabla097' type='text/javascript'></script>
line 998: <script src='http://blabla098' type='text/javascript'></script>
line 999: <script src='http://blabla099' type='text/javascript'></script>
И я могу редактировать это только с помощью классического JavaScript.
И вопрос в том, как я могу настроить таргетинг на этот тег скрипта с помощью src of http://specificaddress
, чтобы полностью удалить его?
Комментарии:
1. Просмотрите элементы скрипта и посмотрите, что содержит их атрибут src …? Однако имейте в виду, что удаление существующего элемента скрипта не приведет к «обратному» выполнению кода, который уже был выполнен на этом этапе.
Ответ №1:
Например, на 098
let element = document.querySelector("script[src='http://blabla098']");
element.parentNode.removeChild(element);
Комментарии:
1. Спасибо, я попробовал это точно так, как вы сказали, и попытался установить также тайм-аут на 3 секунды, чтобы убедиться, что он выполняется после, но это не удалило его.
2. Как вы можете видеть на моем скриншоте моего codepen, вы можете видеть, что после «строки 998» нет скрипта … puu.sh/rOyA0/318561fc26.png Это созданный мной codepen: codepen.io/InstaK/pen/wzQJbO
Ответ №2:
это одно из существующих решений
function scriptElement(param){
var sc = document.scripts;
for(var i=0;i<sc.length;i ){
if(sc[i].src == param || sc[i].id == param){
document.scripts[i].index = i;
return document.scripts[i];
}
if(sc[i].className == param){
return document.scripts;
}
}
}
scriptElement("http://blabla041").index;//return index => 0
scriptElement("http://blabla041").src; // return http://blabla041
scriptElement("http://blabla041").className; //return class attribute
scriptElement("http://blabla041").id; // return id;
scriptElement("scriptid").src;//also className,id
scriptElement("classname")[0].index;//also src,className,id
//to replace src
scriptElement("http://blabla041").src = "http://newsrc.url";
//to remove script
scriptElement("http://blabla041").parentNode.removeChild(scriptElement("http://blabla041"));
Ответ №3:
Наконец-то я выяснил, что было не так в моем коде.
Важно: вы должны ввести полный путь для указанного скрипта.
var script = document.getElementsByTagName('script');
for (var i = 0; i < script.length; i ) {
if (script[i].src == 'file:///C:/Users/username/Desktop/test.js') {
script[i].src = 'nothingHere';
console.log(script[i]);
}
}
<script src='file:///C:/Users/username/Desktop/test.js' type='text/javascript'></script>
<script src='js/adawdaw.js' type='text/javascript'></script>
<script src="js/scripts.js"></script>
Комментарии:
1. Спасибо, но что-то не работает… Я попробовал точно так, как вы опубликовали, а также попытался заменить «specifiedadress» на полный URL, подобный этому » specificaddress «, но это не помогло. Это не удалило его