6

簡単なJavaScriptをGoogleサイトに含めようとしていますが、ボタンを押しても何も表示されません。コードをHTMLボックス内に配置します。ローカルでテストすると、コードは完全に機能します。これが私のコードです:

<script>
  function calcul(){
    x = parseFloat(document.getElementById("value1").value);
    y = parseFloat(document.getElementById("value2").value);
    document.getElementById("answer").innerHTML=x+y;
  }
</script>

<form action="" id="nothing">
  <input type="text" id="value1">
  <input type="text" id="value2">
<input type="button" value="Calculate" id="but" onclick="calcul()" />

<p id="answer"></p>

それを機能させるのを忘れたものはありますか?

4

2 に答える 2

5

Googleサイトは、スクリプト全体を変更します。JavaScriptの記述にはもう少し注意が必要です。

すべての変数の前に追加varすると、問題が修正されます。

<script>
  function calcul(){
    var x = parseFloat(document.getElementById("value1").value);
    var y = parseFloat(document.getElementById("value2").value);
    document.getElementById("answer").innerHTML=x+y;
  }
</script>

<form action="" id="nothing">
  <input type="text" id="value1">
  <input type="text" id="value2">
  <input type="button" value="Calculate" id="but" onclick="calcul()" />
</form>

<p id="answer"></p>

これは機能します;-)

于 2013-02-08T20:44:13.277 に答える
1

Googleサイトは、安全でないと見なした操作を除外します。ここにいくつかの詳細がありますが、クイック検索で公式ドキュメントを見つけることができませんでした。

別の答えが述べているように、変数にはvar宣言が必要です。これがないと、変数がウィンドウに対してグローバルになり、GoogleがサイトのJavaScriptサポートに配置しているサンドボックスをエスケープするために使用される可能性があり、セキュリティ上の懸念が生じる可能性があるため、これが必要です。

だから修正するには:

var x = parseFloat(document.getElementById("value1").value);
var y = parseFloat(document.getElementById("value2").value);
于 2013-02-08T20:50:40.473 に答える