我正在尝试将一个简单的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>
有什么东西我忘了让它起作用吗?
答案 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);