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)

该页面包含php基于$_GET/$_POST生成和填充的表单元素和HTML。我的HTML包含"OnChange=ValidateItems();对于大多数字段;当用户更改页面上的数据时,如果相关,错误消息将内联显示。

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

我想的一个选项是添加一个微小的不可见的框架/框架集/iframe或其他对象,支持onload,不依赖于或标签,并"引导"我自己从一个onload=调用,然后手动添加onload到主体,或钩通常的onload事件在某种程度上,为了调用ValidateItems()一次在正确的时间,然后退出片段一旦它的设置或完成。我不知道什么是最好的方法来做到这一点-我最初如何得到任何代码执行,然后我挂钩或修改等,以便它适当地发生(不太早或太晚);这在技术上比我强多了。帮助和示例代码将非常感激。

添加到你的" freeform html "代码中:

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

最新更新