Задать вопрос
VadimCoder
@VadimCoder

Почему выдает ошибку Uncaught TypeError: Cannot read properties of undefined (reading 'split')?

Делал расширение, написал код:

let changeColor = document.getElementById('buttonBg');

if (changeColor != null) {
	changeColor.onclick = function(el) {  //ругается на эту строку.
		let colorBg = '#333';
		let colorText = '#fff'

		chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
			chrome.tabs.executeScript(
				tabs[0].id,
				{code: 'document.body.style.backgroundColor = "' + colorBg + '";document.body.style.color = "' + colorText + '"'}
			);
		})
	}
}


Подключаю код не в html-странице, а в manifest.json, поэтому onload и defer использовать не могу.
  • Вопрос задан
  • 760 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
onload - можешь. Только не onload addEventListener('load', ...).
Правда это и не нужно, для content_scripts указывается когда его запускать в параметре run_at.

Точно также не onclick, а addEventListener('click', ...). Вообще забудь об on<event> когда лезешь на чужие страницы. Такой обработчик может быть только один, в то время как addEventListener сколько угодно.

Ну и я нигде не вижу в твоём коде split, на который жалуется ошибка, так что где-то ты привираешь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы