我有这个条件编译语句来评估浏览器是否是IE
:
ie = /*@cc_on!@*/false;
if (ie) {
//do IE specific stuff..
}
我需要在 JSNI 的 GWT 中使用它。但是,当我这样做时:
public native void JS() /*-{
ie = /*@cc_on!@*/false;
}-*/;
我在该行收到错误,例如语法错误,} 预期。我试过了eval
,错误仍然存在。我该如何解决?
我有这个条件编译语句来评估浏览器是否是IE
:
ie = /*@cc_on!@*/false;
if (ie) {
//do IE specific stuff..
}
我需要在 JSNI 的 GWT 中使用它。但是,当我这样做时:
public native void JS() /*-{
ie = /*@cc_on!@*/false;
}-*/;
我在该行收到错误,例如语法错误,} 预期。我试过了eval
,错误仍然存在。我该如何解决?
/*@cc_on!@*/
不是正则表达式,而是多行 JavaScript 注释 ( /* .. comment .. */
)。在 Internet Explorer 中,这不仅仅是注释。对代码进行解析和评估(此功能称为条件编译)。
您的*/
代码中的 结束了 GWT 特定/*-{
部分,导致出现错误。
解决方案是使用不同的方式写下评论:
var ie = false;
//@cc_on ie = true;
另一种对 JavaScript 缩小器也安全的方法是:
var ie = eval('/*@cc_on!@*'+'/false');