编辑:这个问题变得无关紧要,因为我发现 setRequestHeader 技术适用于 v18 和 v19。http://code.google.com/p/chromium/issues/detail?id=123150#c39上的海报似乎不正确,说这种方法在 v18 上不起作用 - 它确实如此。如果允许,我将在 8 小时内更新此答案!
我正在使用 Chrome 扩展程序,它是一种自动测试工具。它已覆盖用户代理(在启动 chrome 时通过命令行),因此我无法再使用 appVersion 查看 chrome 的版本。
还有其他方法可以检测 Javascript 中的 chrome 版本吗?
背景:我正在使用 xmlhttp 请求受基本身份验证保护的页面。
我现在必须根据 v18 或 v19+ 采取不同的操作,因为谷歌在 v19 的 URL 中删除了嵌入的基本身份验证(请参阅http://code.google.com/p/chromium/issues/detail?id=123150#c39)。
这是一个自动脚本,所以我不会在那里输入用户名或密码,但脚本都知道它们。
if (v18_or_earlier)
{
xmlhttp.open("POST", url, true, http_basic_username, http_basic_password) ;
}
else //v19+
{
xmlhttp.open("POST", get_upload_url(), true);
var auth_header = "Basic " + Base64.encode(http_basic_username + ":" + http_basic_password) ;
xmlhttp.setRequestHeader("Authorization", auth_header) ;
}
xmlhttp.send(post_body) ;