0

我正在使用一个简单的正则表达式测试,例如

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;
4

1 回答 1

1

简单的解决方案:使用括号表示法,如文档中所述

navigator['userAgent']

但是,当我在http://closure-compiler.appspot.com/home中测试您的代码时,它不会使用高级编译重命名属性名称。

于 2013-09-02T09:03:19.573 回答