Ваш обработчик событий в стиле onclick
-attribute ожидает найти глобал с именем myFunction
, но при использовании выражения с именованной функцией, например:
window.onload = function myFunction() {
// ...
};
имя функции не добавляется в область, в которой появляется это выражение (кроме старых сломанных версий IE) .
Функция объявлений добавить в область видимости, чтобы вы могли использовать объявление и присваивание:
function myFunction() {
// ...
}
window.onload = myFunction;
Я бы настоятельно рекомендовал отказаться от обработчиков событий в стиле onxyz
, хотя бы потому, что они требуют глобальных функций, а глобальное пространство имен уже переполнено и подвержено конфликтам. Вместо этого оберните ваш код в ограничивающую конструкцию (IIFE, модуль и т. Д.) И используйте современную обработку событий (addEventListener
и т. Д.). Обратите внимание, что если вы ищете элемент по id
на странице JSF, идентификатор на стороне клиента будет , а не * id
, который вы даете элементу (по умолчанию), полное объяснение в ответы на этот вопрос . (Спасибо Kukeltje за то, что указали на это в комментариях к ФП.)