1

私はサーバー上でjavascriptを生成しており、スクリプトのphpソースコードで実行されるようにGoogleClousureCompilerを実行したいと考えています。

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 に答える