Почему не определяется функция в расширении для Chrome?

Пишу расширение.
Добавляет объект на страницу нормально через функцию AddElement().
В этой функции создается элемент "a" с атрибутом "onclick", "add()":
function AddElement(){
		var link = document.createElement('a');
		link.innerHTML = 'To Do',
		link.className = 'Add';
		link.textContent = "To Do";
		link.setAttribute('onClick', 'add()');
		task.appendChild(link);
	}

и элемент на странице создается.
Но когда жму по появившемуся элементу, полчаю ответ от браузера:
Uncaught ReferenceError: add is not defined

Хотя функция в файле расширения так же задана выше функции создания кнопки:
function add(){
		if (confirm("Добавить "+TaskName+" в список To Do?")) {
		  alert("Test");// 
		}
	}


И можно сразу как-то выполнить post запрос на страницу task.php?
data примерно такая:
'num':'123123','note':'1','username':UserName,'memo':'AutoToDo','group':'4'
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Скорее всего, ваше расширение обёрнуто в модуль-замыкание, поэтому объявленная в нём функция не видна снаружи. Ну или ещё какая-то проблема с областью видимости.

Чтобы избавиться от всех проблем, достаточно ставить обработчик события нормально:
link.addEventListener('click', add);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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