0

みんな、ロード時にJavascript関数を呼び出すためにPHPにほとんど問題はありません...アイデアは、ページのロード時にPHPのものをほとんど計算しないため、終了したら、JavaScriptを使用して同じDOM要素にそれを書き留めることだけです。100% 大丈夫だと確信しているので、計算用の PHP コードは表示しません。これは私がこれまでに取得したコードなので、何が問題なのか教えてもらえますか?

$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()で関数を呼び出す代わりに、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;
}
于 2012-10-25T01:46:56.447 に答える