包括javascript到谷歌网站

时间:2013-02-08 20:30:38

标签: javascript google-sites html-box-gadget

我正在尝试将一个简单的JavaScript添加到Google协作平台,但按下按钮时我什么都没得到。我把代码放在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>

有什么东西我忘了让它起作用吗?

2 个答案:

答案 0 :(得分: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>

这将有效; - )

答案 1 :(得分:1)

Google协作平台将过滤掉其认为不安全的操作。一些详细信息here,但无法通过快速搜索找到官方文档。

另一个答案提到,您的变量需要var声明。这是必需的,因为如果没有这个,变量将成为窗口的全局变量,并且可能用于逃避Google围绕网站javascript支持的任何沙箱,这可能会引起安全问题。

所以要解决:

var x = parseFloat(document.getElementById("value1").value);
var y = parseFloat(document.getElementById("value2").value);