我正在使用像
这样的简单正则表达式测试is_safari_or_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit/i.test(navigator.userAgent);
在我的js中。用Closure编译器(高级优化)编译后,它不再工作了。它仍然给我正则表达式但navigator.useragent缺失。
注意,我没有使用闭包库,也没有意图在这一点上使用。我该如何保留这个测试?
js代码
var browser_type = new RegExp('(iPhone|iPod|iPad).*AppleWebKit', 'i');
function is_safari_or_uiwebview() {
return browser_type.test(navigator.userAgent);
}
window['is_safari_or_uiwebview'] = is_safari_or_uiwebview;
已编译的代码:
var l=/(iPhone|iPod|iPad).*AppleWebKit/i,l=/(iPhone|iPod|iPad).*AppleWebKit/i;function m(){return l.test(navigator.c)}window.is_safari_or_uiwebview=m;
答案 0 :(得分:1)
简单解决方案:使用括号表示as explained in the documentation。
navigator['userAgent']
但是,当我在http://closure-compiler.appspot.com/home中测试您的代码时,不使用高级编译重命名属性名称。