Вы не можете использовать CFML внутри JavaScript, потому что ColdFusion работает на сервере, а JavaScript работает на клиенте. Однако вам нужно подумать о том, как работает CFML, CFML-код обрабатывается на сервере, а затем вывод передается клиенту. Таким образом, в вашем случае приведенный вами пример действителен. CFML будет обработан на сервере, и один из двух выходов будет сгенерирован и передан обратно клиенту.
ПРИМЕЧАНИЕ. Вы не включили весь код, поэтому я предполагаю, что перед этим существует дополнительный код, который проверяет наличие переменной url.new
. В противном случае, если аргумент new
не передан в URL-адресе, тогда будет выведено сообщение о том, что переменная не существует.
Если URL-адрес не содержит аргумент с именем «новый»; http://www.yourdomain.com/somepage
или «новый» аргумент существует, но его значение не считается «истинным»; http://www.yourdomain.com/somepage?new=false
, то выход будет:
<script language="JavaScript" type="text/JavaScript" >
var x = 2;
</script>
Обратите внимание, что значение «х» в сгенерированном JavaScript будет 2.
Если URL действительно содержит аргумент с именем «новый» и его значение считается «истинным»; http://www.yourdomain.com/somepage?new=true
, то выход будет:
<script language="JavaScript" type="text/JavaScript" >
var x = 2;
var x = 5
</script>
Обратите внимание, что значение «х» в сгенерированном JavaScript будет 5, однако есть также отсутствует точка с запятой в конце строки так, ваш пример может вызвать ошибку JavaScript.
Обратите внимание, что я также упоминаю «если значение считается истинным или ложным». В ColdFusion булевы выражения, True, ненулевые числа и строки «Да», «1 |», «Истина» эквивалентны; и False, 0, а строки «Нет», «0» и «Ложные» эквивалентны. Булевая оценка не чувствительна к регистру. Например, True, TRUE и true эквивалентны. Поэтому в вашем примере http://www.yourdomain.com/somepage?new=1 также будет считаться истинным.
' var x = 5 ' Неверный синтаксис. Использовать ' var x = 5 ' –
RRK