Изменение 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, время: 11:17. |