我正在服务器上生成一个javascript,并希望运行Google Clousure Compiler,以便在脚本的php源代码上运行。
var jsvar = <?=$var ? true : false ?>;
如果有任何方法告诉编译器跳过优化,只是徘徊?像正则表达式跳过:
/<\?=.*?\?>/
致以最诚挚的问候,
的Niclas
答案 0 :(得分:6)
我发现当我将客户端JavaScript与服务器端逻辑分开时,我的代码更容易维护。现在我编写脚本,以便我的服务器端处理发出初始化变量。
示例 - 服务器端:
<?php echo 'var mynamespace = {}; mynamespace.jsvar = "' . $var . '";'; ?>
在我的客户端javascript:
var mynamespace = window['mynamespace'] || {};
function MyFunction() {
alert(mynamespace['jsvar']);
}
MyFunction();
使用这种风格,我的客户端javascript可以使用Closure-compiler轻松编译。
答案 1 :(得分:4)
你可以这样做:
var jsvar = eval("<?=$var ? true : false ?>");
编译器不会触及字符串的内容。