2012-05-04 2 views
1

Я создаю javascript на сервере, как и хотел бы запустить компилятор Google Clousure для запуска в исходном коде php скрипта.Частично пропустить разделы с компилятором Google Closure

var jsvar = <?=$var ? true : false ?>; 

Просто блуждающий, если есть какой-либо способ сообщить компилятору пропустить оптимизацию? Как регулярное выражение пропустить:

/<\?=.*?\?>/ 

С наилучшими пожеланиями,

Никлас

ответ

6

Я обнаружил, что мой код намного проще поддерживать, когда я отделяю свой клиентский JavaScript от своей логики на стороне сервера. Теперь я пишу свои сценарии таким образом, что моя обработка на стороне сервера испускает переменные инициализации.

Пример - Server Side:

<?php echo 'var mynamespace = {}; mynamespace.jsvar = "' . $var . '";'; ?> 

И в моей стороне клиента JavaScript:

var mynamespace = window['mynamespace'] || {}; 
function MyFunction() { 
    alert(mynamespace['jsvar']); 
} 
MyFunction(); 

Используя этот стиль, мой стороне клиента Javascript легко компилируется с Застежка-компилятором.

3

Вы можете сделать это:

var jsvar = eval("<?=$var ? true : false ?>"); 

компилятор не будет трогать содержимое строки.

Смежные вопросы