0

伙计们,我对 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;
}

提前致谢

4

1 回答 1

3

您需要将调用包装在一个通过引用分配的函数UpdatePoints()中,而不是调用 in 中的函数。否则,您正在调用该函数,并将其返回值分配给.window.onloadwindow.onloadwindow.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;
}
于 2012-10-25T01:46:56.447 回答