0

我有这个条件编译语句来评估浏览器是否是IE

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

我需要在 JSNI 的 GWT 中使用它。但是,当我这样做时:

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

我在该行收到错误,例如语法错误,} 预期。我试过了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 回答