如何在页面加载后触发Javascript功能?

Sha*_*atz 1 html javascript php events onload

**编辑**

我担心我的方向不正确 - 这个问题不是我所问的问题.Javascript按原样运行,它是PHP在第一次"运行"时没有显示我想要它的东西 - 我不知道为什么.抱歉有点浪费你的时间......

**

我有一个表单可能已经或可能不包含其字段中的数据.如果用户到达表单并且他已经在系统中有一些数据,那么他的ID号将出现在ID字段中 - 运行onLoad的JavaScript函数将禁用输入字段并更改其样式:

<body onload="runFunction()">
Run Code Online (Sandbox Code Playgroud)

问题是它似乎在PHP发挥其作用之前运行,并且只有当我刷新页面时,JS函数才会执行我想要的所有操作(它禁用并设置一些依赖于PHP条件的其他表单字段).

有没有办法让这个JS函数在页面呈现后运行?我在关闭页面之前尝试运行它:

<body>
...
...
<script>
runFunction();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但无济于事.

有任何想法吗?谢谢!

一些相关的PHP代码:[我删除了id属性,使阅读更容易]

<?php if ($h_phone != '' && $h_phone_pre != '') {  
echo "<td class=\"input\"><input type=\"text\" id=\"new_user_home_tel\" value=\"$h_phone\" size=\"8\" maxlength=\"7\" disabled=\"disabled\" /> -  
<select id=\"new_user_home_tel_pre\" disabled=\"disabled\">  
  <option value=\"$h_phone_pre\" selected=\"selected\"></option>";

     } else {

echo '<td class="input"><input type="text" id="new_user_home_tel" size="8" maxlength="7" /> -  
 <select id="new_user_home_tel_pre">  
   <option value=" " selected="selected"></option>';
    }?>  <option value="02">02</option>
     <option value="03">03</option>
     <option value="04">04</option>
     <option value="08">08</option>
     <option value="09">09</option>
</select> 
</td>   
Run Code Online (Sandbox Code Playgroud)

如果字段不为空且可行,则Javascript代码只会更改样式,但PHP仅在刷新后才起作用.

but*_*oxa 5

您的Javascript在页面加载后运行,问题出在其他地方.

必须是您的服务器在刷新之前和之后发送不同的HTML.我建议如果您保存第一次获得的页面源,并将其与刷新后获得的源进行比较.我打赌你会发现差异,这会告诉你什么是错的.

  • 我建议您添加一个调试按钮,在单击时调用runFunction(),看看如果在确定页面已加载时单击该按钮会发生什么.没有奇迹,相同的HTML应该产生相同的结果. (2认同)