0

私は、ブラウザがそうであるかどうかを評価するこの条件付きコンパイルステートメントを持ってIEいます:

ie = /*@cc_on!@*/false;
if (ie) {
 //do IE specific stuff..
}

JSNI 内の GWT で使用する必要があります。ただし、これを行うと:

public native void JS()  /*-{
 ie = /*@cc_on!@*/false;
}-*/;

Syntax error, } expectedのようなエラーがその行に表示されます。私はそれを試みましevalたが、それでもエラーは解決しません。どうすれば修正できますか?

4

1 に答える 1

5

/*@cc_on!@*/は正規表現ではなく、複数行のJavaScriptコメント(/* .. comment .. */)です。Internet Explorerでは、これは単なるコメントではありません。コードは解析および評価されます(この機能は条件付きコンパイルと呼ばれます)。

コード内の*/がGWT固有の/*-{セクションを終了し、エラーが表示されます。

解決策は、別の方法を使用してコメントを書き留めることです。

var ie = false;
//@cc_on ie = true;

JavaScriptミニファイアに対しても安全な別の方法は次のとおりです。

var ie = eval('/*@cc_on!@*'+'/false');
于 2013-03-10T20:27:43.043 に答える