Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.12.2019, 11:51
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Изменение JS на странице браузера.
Пишу расширение для гугл хром, для одного сайта.
Необходимо заменить код в теге <script></script>.

Всё это сделал, единственное оно не работает.
Т.е. код меняется, но выполняется тот который был.

Мб нужно обновить как-то выполнение страницы?
Ответить с цитированием
  #2 (permalink)  
Старый 14.12.2019, 13:26
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Код, подключаемый к странице(просто меняет раскладку при вводе в 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 символов сообщение не выскакивает.

Последний раз редактировалось Артист, 14.12.2019 в 13:31.
Ответить с цитированием
  #3 (permalink)  
Старый 14.12.2019, 13:52
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Попробовал так:
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>`)

Как текст вставилось.
Ответить с цитированием
  #4 (permalink)  
Старый 14.12.2019, 14:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Артист,
создайте новый скрипт с нужным содержимым.
var script= document.createElement('script');
 script.type= "text/javascript";
 script.text= `тут ваш код`;
 document.body.appendChild(script);
Ответить с цитированием
  #5 (permalink)  
Старый 14.12.2019, 17:16
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Всё получилось, спасибо. )

var e = scripts[i].parentElement
scripts[i].remove()
				
var script= document.createElement('script');
script.type= "text/javascript";
script.text= `скрипт`;
e.append(script);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расширение для браузера: выводить на странице информацию о владельце из базы trommo Javascript под браузер 5 25.02.2019 20:23
Доступ к настройкам браузера из JS mshdn75 Элементы интерфейса 1 01.10.2012 13:44
ИЗМЕНЕНИЕ JS ЛОКАЛЬНО?????? Brook Events/DOM/Window 5 12.08.2012 01:46
Изменение usemap в JS Он самый Общие вопросы Javascript 1 05.01.2012 15:33
изменение значения классов в js igor' Общие вопросы Javascript 5 02.09.2010 19:32