php加载到'html body'之前吗?

时间:2009-11-24 19:47:14

标签: php javascript html

很难解释这个问题,但我目前正在将php页面中的变量传递给一些html隐藏输入。

我使用javascript函数从隐藏的输入中获取这些值。这个函数被调用如下:

 <body onload="function();">

它现在可以在我的系统上运行,但是有没有机会从php传递的值可能无法通过,因为在PHP代码设置隐藏的输入类型之前,body已经调用了函数?

由于

2 个答案:

答案 0 :(得分:17)

可能混淆了哪个部分做了什么。

  • PHP在服务器端生成HTML页面 。当HTML页面到达浏览器时,PHP已经完成了它的工作。 PHP在呈现HTML后无法执行某些操作。

  • 在生成并加载页面后,在用户的浏览器中执行 。 (或者在期间;正如theraccoonbear指出的那样,Javasript可以在页面完全加载之前在浏览器中运行。)

  • Javascript命令无法与呈现页面的PHP脚本进行通信,因为当Javascript发挥作用时,PHP已经消失。

所以问题的答案是:不,在PHP完成之前,JS函数无法执行。正如几位评论员指出的那样,这并不完全正确。在输入HTML元素之前,Javascript 可能开始行动。但是,在您的示例中,Javascript仅在文档完全加载时触发。在那个星座中,答案是否定的,它不会发生。

答案 1 :(得分:2)

这应该不是问题,因为你正在使用body的onload属性,这将确保dom和所有图像等已经加载。

在我看来,使用jQuery会更好,在dom准备就绪时会立即触发,而不是等待所有图像等。

$(document).ready(function() {
    // do stuff here
});

如果需要,这也可以通过外部JS文件轻松完成,这有助于您在逻辑上分离代码。