我使用的Chrome扩展程序是一种自动测试工具。它已覆盖用户代理(在启动chrome时通过命令行),因此我无法再使用appVersion查看chrome的版本。
还有其他方法可以在Javascript中检测Chrome版本吗?
背景:我使用xmlhttp来请求受Basic Auth保护的页面。
我现在必须采取不同的行动,具体取决于v18或v19 +,因为Google已在第19页的网址中删除了嵌入式基本身份验证(请参阅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) ;
答案 0 :(得分:0)
这样的事情会起作用吗?
<script>
function chrome_version( version ) {
if ( version < 18) {
xmlhttp.open("POST", get_upload_url(), true);
var auth_header = "Basic " + Base64.encode(http_basic_username + ":" + http_basic_password) ;
xmlhttp.setRequestHeader("Authorization", auth_header) ;
} else {
# Maybe do framebusting or...
xmlhttp.open("POST", url, true, http_basic_username, http_basic_password) ;
}
}
</script>
<iframe src="http://user:pass@example.org"
onload="chrome_version(18)"
onerror="chrome_version(19)">
</iframe>