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