Javascript: запуск кода OnLoad без доступа к <body> или <head>?
Я модифицирую веб-страницу, созданную сторонним проектом. По сути, проект делает что-то вроде этого, когда ваш браузер запрашивает страницу (псевдокод):
<?php
include: project's fixed library INCLUDE's
include: my freeform php code
?>
(project's fixed HTML <head>...</head> and <scripts/> sections)
(project's fixed HTML <body> tag and page header + frames)
(my freeform php/HTML code)
(project's fixed HTML footer, frame closures, and </body> tag)
Страница содержит элементы формы и HTML, который генерируется и заполняется php на основе $_GET/$_POST. Мой HTML содержит "OnChange=ValidateItems();" для большинства полей; когда пользователь изменяет данные на странице, сообщения об ошибках будут появляться встроенными, если это уместно.
То, что я хочу, это также вызвать "ValidateItems();" после загрузки страницы, когда начальные пользовательские значения установлены в HTML, готовом для пользователя. Но у меня нет доступа к обычным или местам размещения из-за вышеупомянутой структуры загрузки. Мне интересно, как еще это сделать.
Один из вариантов, о котором я думал, это добавить крошечный невидимый frame / frameset / iframe или другой объект, который поддерживает onload и не зависит от тегов or, и "самозагрузить" себя из вызова onload =, чтобы затем вручную добавить onload в тело или каким-либо образом подключить обычное событие onload, чтобы вызвать ValidateItems () один раз в нужное время, а затем выйти из фрагмента после его настройки или завершения. Я понятия не имею, как лучше всего это сделать - как я сначала получу какой-либо код для выполнения, что я потом перехватываю или изменяю и т. Д., Чтобы это происходило соответствующим образом (не слишком рано или поздно); это лиги мимо меня технически. Справка и пример кода будут очень благодарны.
1 ответ
Добавьте это где-нибудь внутри своего кода "произвольная форма HTML":
<script>
window.onload = ValidateItems;
<script>