很难解释这个问题,但我目前正在将php页面中的变量传递给一些html隐藏输入。
我使用javascript函数从隐藏的输入中获取这些值。这个函数被调用如下:
<body onload="function();">
它现在可以在我的系统上运行,但是有没有机会从php传递的值可能无法通过,因为在PHP代码设置隐藏的输入类型之前,body已经调用了函数?
由于
答案 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文件轻松完成,这有助于您在逻辑上分离代码。