Изменение JS на странице браузера.
Пишу расширение для гугл хром, для одного сайта.
Необходимо заменить код в теге <script></script>. Всё это сделал, единственное оно не работает. :lol: Т.е. код меняется, но выполняется тот который был. Мб нужно обновить как-то выполнение страницы? |
Код, подключаемый к странице(просто меняет раскладку при вводе в input):
var scripts = document.querySelectorAll("script") for(var i = 0, j = scripts.length; i < j; i++) { var h = scripts[i].innerHTML if(h.indexOf('change_tr') > -1) { scripts[i].innerHTML = `function change_tr() { var r = "йцукенгшщзфывапролдячсмитьЙЦУКЕНГШЩЗФЫВАПРОЛДЯЧСМИТЬ"; var e = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"; var u = "йцукенгшщзфівапролдячсмитьЙЦУКЕНГШЩЗФІВАПРОЛДЯЧСМИТЬ" var s = document.getElementById("code").value; var l = s.length; if(l > 5) alert('<jkmit 5!') // Моя правка............................................ var i = 0; var j = 0; var c = ""; for(i < 0; i < l; i++) { c = s.substr(i, 1); j = r.indexOf(c); if(j >= 0) s = s.substr(0, i) + e.substr(j, 1) + s.substr(i + 1, l); else { j = u.indexOf(c); if(j >= 0) s = s.substr(0, i) + e.substr(j, 1) + s.substr(i + 1, l); } } document.getElementById("code").value = s; }` } } Потом я открываю просмотр кода на странице, и вижу, что всё изменилось, однако при вводе в input более 5 символов сообщение не выскакивает. |
Попробовал так:
scripts[i].replaceWith(`<script>function change_tr() { var r = "йцукенгшщзфывапролдячсмитьЙЦУКЕНГШЩЗФЫВАПРОЛДЯЧСМИТЬ"; var e = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"; var u = "йцукенгшщзфівапролдячсмитьЙЦУКЕНГШЩЗФІВАПРОЛДЯЧСМИТЬ" var s = document.getElementById("code").value; var l = s.length; if(l > 5) alert('<jkmit 5!') var i = 0; var j = 0; var c = ""; for(i < 0; i < l; i++) { c = s.substr(i, 1); j = r.indexOf(c); if(j >= 0) s = s.substr(0, i) + e.substr(j, 1) + s.substr(i + 1, l); else { j = u.indexOf(c); if(j >= 0) s = s.substr(0, i) + e.substr(j, 1) + s.substr(i + 1, l); } } document.getElementById("code").value = s; }</script>`) Как текст вставилось. |
Артист,
создайте новый скрипт с нужным содержимым. var script= document.createElement('script'); script.type= "text/javascript"; script.text= `тут ваш код`; document.body.appendChild(script); |
Всё получилось, спасибо. )
var e = scripts[i].parentElement scripts[i].remove() var script= document.createElement('script'); script.type= "text/javascript"; script.text= `скрипт`; e.append(script); |
Часовой пояс GMT +3, время: 03:56. |