Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:运行OnLoad代码而不访问<;车身>;或<;头>;?_Javascript_Dom_Hook_Onload_Head - Fatal编程技术网

Javascript:运行OnLoad代码而不访问<;车身>;或<;头>;?

Javascript:运行OnLoad代码而不访问<;车身>;或<;头>;?,javascript,dom,hook,onload,head,Javascript,Dom,Hook,Onload,Head,我正在修改一个由第三方项目生成的网页。当浏览器请求页面(伪代码)时,项目基本上会执行以下操作: (项目的固定HTML…和部分) (项目的固定HTML标记和页面标题+框架) (我的自由格式php/HTML代码) (项目的固定HTML页脚、框架闭包和标记) 该页面包含表单元素和HTML,由php基于$\u GET/$\u POST生成和填充。我的HTML包含“OnChange=ValidateItems();”,适用于大多数字段;当用户更改页面上的数据时,如果相关,错误消息将内联显示 我想要的是

我正在修改一个由第三方项目生成的网页。当浏览器请求页面(伪代码)时,项目基本上会执行以下操作:


(项目的固定HTML…和部分)
(项目的固定HTML标记和页面标题+框架)
(我的自由格式php/HTML代码)
(项目的固定HTML页脚、框架闭包和标记)
该页面包含表单元素和HTML,由php基于$\u GET/$\u POST生成和填充。我的HTML包含“OnChange=ValidateItems();”,适用于大多数字段;当用户更改页面上的数据时,如果相关,错误消息将内联显示

我想要的是在页面加载后,当用户提供的初始值在HTML中为用户设置好时,也触发“ValidateItems();”。但由于上述装载结构,我无法访问常规或放置位置。我想知道还有什么别的办法能让它发生


我考虑的一个选项是添加一个微小的不可见的frame/frameset/iframe或其他支持onload且不依赖于or标记的对象,并从onload=调用中“引导”自己,然后手动将onload添加到主体中,或以某种方式钩住通常的onload事件,以便调用ValidateItems()在正确的时间执行一次,然后在设置或完成代码段后退出。我不知道做这件事的最佳方式是什么——我最初是如何让任何代码执行的,然后我会钩住或修改什么,等等,以便它能够适当地发生(不太早或太晚);从技术上讲,这比我强多了。非常感谢您的帮助和示例代码。

在“自由格式html”代码中添加以下内容:

<script>
  window.onload = ValidateItems;
<script>

window.onload=ValidateItems;

我又试了一次(以前不起作用),它确实起作用——但只有在项目验证后才起作用。将它放在HTML表单中,但在验证项目之前,它失败了,将它放在验证项目的末尾或之后,它就工作了。这是为什么?您确定已将
window.onload=ValidateItems
而不仅仅是
ValidateItems()
?使用
window.onload=ValidateItems
ValidateItems
将在加载整个页面后执行。只要调用
ValidateItems()
就会立即执行它,如果您将它放在
ValidateItems
需要访问的元素之前,它将无法工作,因为它们尚未加载。
<script>
  window.onload = ValidateItems;
<script>