6

我正在尝试在 Google 协作平台中包含一个简单的 javascript,但按下按钮时我什么也得不到。我将代码放在 HTML Box 中。该代码在本地测试时完美运行。这是我的代码:

<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 回答