Php在加载时调用javascript

时间:2012-10-25 01:39:06

标签: php javascript

伙计们,PHP在加载时调用Javascript函数没什么问题... 想法是当页面加载我用PHP的东西做很少的计算,所以当我完成所有我 想要是使用javascript在同一个DOM元素中写下来。 我不会向您展示PHP代码进行计算,因为我100%确定它没问题。 这是我到目前为止的代码,所以你能告诉我它有什么问题吗?

$test = 100;
echo "<script language=javascript> window.onload=UpdatePoints($test); </script>";

和Javascript功能很简单

function UpdatePoints(Points) {
document.getElementById('PointsNumber').innerHTML = Points;
}

提前致谢

1 个答案:

答案 0 :(得分:2)

不需要在UpdatePoints()中调用函数window.onload,而是需要将调用包装在通过引用window.onload分配的函数中。否则,您正在调用该函数,并将其返回值分配给window.onload

// This function wraps UpdatePoints($test)
// and is assigned as a reference to window.onload
function load() {
  UpdatePoints(<?php echo $test; ?>);
}
echo "<script type='text/javascript'> window.onload=load; </script>";

请注意,不推荐使用language标记的<script>属性。在其位置包含type=text/javascript属性(尽管text / javascript通常是浏览器的默认值)

但是,由于$test的值是在页面加载之前创建的,并且在调用函数时无法更改,因此您也不必费心将其作为参数传递,在这种情况下您不需要包装功能。只需删除()即可将其指定为参考。

echo "<script type='text/javascript'> window.onload=UpdatePoints; </script>";

function UpdatePoints() {
  // PHP write directly into the function since the value
  // can't change...  It's always going to be passed as what PHP assigns 
  // if you call it as UpdatePoints($test)
  var Points = $test;
  document.getElementById('PointsNumber').innerHTML = Points;
}