1

我正在服务器上生成一个 javascript,并希望运行 Google Clousure Compiler 以在脚本的 php 源代码上运行。

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

如果有什么方法可以告诉编译器跳过 ? 就像一个正则表达式跳过:

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

最好的祝福,

尼古拉斯

4

2 回答 2

6

我发现当我将客户端 JavaScript 与服务器端逻辑分开时,我的代码更容易维护。现在我编写脚本,以便我的服务器端处理发出初始化变量。

示例 - 服务器端:

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

在我的客户端javascript中:

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

使用这种风格,我的客户端 javascript 可以使用 Closure-compiler 轻松编译。

于 2012-05-05T13:20:40.647 回答
4

你可以这样做:

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

编译器不会触及字符串的内容。

于 2012-05-04T20:09:11.030 回答