Configuration PAC(代理自动配置)navigator.appName不可用
我已经有了一个proxy.pac文件。我希望客户端根据其web浏览器使用不同的proxyserver 没问题,我想。有许多java脚本片段,用于检测浏览器名称/版本 我找到的示例使用了all navigator.appName。如果我在一个普通的网站上测试的话,效果很好。当我把它放进proxy.pac时,它就不起作用了。导航器对象似乎不存在 有没有人建议如何根据用户代理切换代理 我的目标是,所有IE6都使用一个特定的代理,其余的只使用默认代理 背景:IE6不支持在默认代理上使用的Kerberos身份验证。因此,我使用LDAP身份验证设置了一个额外的代理Configuration PAC(代理自动配置)navigator.appName不可用,configuration,proxy,pac,Configuration,Proxy,Pac,我已经有了一个proxy.pac文件。我希望客户端根据其web浏览器使用不同的proxyserver 没问题,我想。有许多java脚本片段,用于检测浏览器名称/版本 我找到的示例使用了all navigator.appName。如果我在一个普通的网站上测试的话,效果很好。当我把它放进proxy.pac时,它就不起作用了。导航器对象似乎不存在 有没有人建议如何根据用户代理切换代理 我的目标是,所有IE6都使用一个特定的代理,其余的只使用默认代理 背景:IE6不支持在默认代理上使用的Kerberos
提前感谢您的帮助。也许您可以发现浏览器之间存在一些不太明显或更微妙的javascript引擎差异,例如 如果某些特定功能的类型!=未定义 或者使用try-and-catch 或者比较一些内置函数的结果以获得细微的差异 这可能有助于一个开始 更新:还有一个特定于浏览器版本的行为: 发件人: weekdayRange[,][,]函数返回当前系统时间是否在参数指定的范围内,以及。只有第一个参数是必需的。GMT参数以GMT而不是本地时区设置时间 请注意,在使用==调用函数的地方,早期版本的Internet Explorer将产生不同于使用Netscape Navigator的结果。具体来说,以前版本的Internet Explorer将把这一天的范围解释为一整周,而Internet Explorer 6和Netscape Navigator将这一范围解释为一天。例如,如果当前日期是星期一,则调用weekdayRangeTUE,TUE在早期版本的Internet Explorer上返回TRUE,在Internet Explorer 6和Netscape Navigator上返回FALSE 更新2:根据一个人应该能够区分IE7和旧版IE,其他浏览器可能支持也可能不支持这些扩展,比如这里提到的Chrome: 根据目前为止的信息,应该可以区分IE 5.5、IE 6、IE 7、IE 8、IE 9
如果您发现任何类似的有用信息,请告诉我们。您可以通过:const-ifIE=/*@cc\u on尝试检测PAC脚本中的IE@*/错误的 根据新的或旧的IE/Edge版本,条件编译可能会有所不同
我还没有对这个答案做任何测试-,请在评论中告诉我们它是否有效。很抱歉回复太晚。我做了一个变通,因为我发现没有一个解决方案能正常工作。我将浏览器指向一个PHP脚本proxy.PHP,该脚本解析用户代理头并为ie6发送一个proxy.pac,为所有其他文件发送一个proxy.pac。
function FindProxyForURL(url, host)
{
if(weekdayRange("WED", "SAT", "GMT"))
return "PROXY proxy:80";
else
return "DIRECT";
}