В том числе JavaScript для сайтов Google
Я пытаюсь включить простой 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>
Есть что-то, что я забыл, чтобы заставить это работать?
2 ответа
Сайты 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>
Это будет работать;-)
Сайты Google будут отфильтровывать операции, которые он считает небезопасными. Некоторые подробности здесь, но не удалось найти официальную документацию с помощью быстрого поиска.
Как говорит другой ответ, ваши переменные должны var
деклараций. Это необходимо, потому что без этого переменные станут глобальными для окна и потенциально могут быть использованы для выхода из любой песочницы, которую Google ставит вокруг поддержки javascript сайтов, что может вызвать проблемы безопасности.
Итак, чтобы исправить:
var x = parseFloat(document.getElementById("value1").value);
var y = parseFloat(document.getElementById("value2").value);