Javascript 是否可以阻止使用Safari桌面浏览器的客户端?
由于Safari的桌面版不支持Javascript 是否可以阻止使用Safari桌面浏览器的客户端?,javascript,safari,Javascript,Safari,由于Safari的桌面版不支持,我想告诉使用Safari桌面版的客户端,他们应该切换到其他浏览器 我尝试了以下函数,但不幸的是,即使我使用Chrome,它也会返回Safari function getBrowser() { if((navigator.userAgent.indexOf("Opera") != -1 || navigator.userAgent.indexOf('OPR')) != -1 ) { return 'Opera'; }
,我想告诉使用Safari桌面版的客户端,他们应该切换到其他浏览器
我尝试了以下函数,但不幸的是,即使我使用Chrome,它也会返回Safari
function getBrowser() {
if((navigator.userAgent.indexOf("Opera") != -1 || navigator.userAgent.indexOf('OPR')) != -1 )
{
return 'Opera';
}
else if(navigator.userAgent.indexOf("Edge") != -1 )
{
return 'Edge';
}
else if(navigator.userAgent.indexOf("Samsung") != -1) {
return 'Samsung Browser';
}
else if(navigator.userAgent.indexOf("Safari") != -1)
{
return 'Safari';
}
else if (navigator.userAgent.indexOf("Chrome") != -1) {
return 'Chrome';
}
else if(navigator.userAgent.indexOf("Firefox") != -1 )
{
return 'Firefox';
}
else if(navigator.userAgent.indexOf("MSIE") != -1 )
{
return 'IE';
}
else
{
return 'unknown';
}
}
是否有其他方法可以检测客户端是否正在使用Safari?如果有,是否可能检测到正在使用桌面版本的用户?因为在iPhone和iPad上,
标记确实起作用。在这种情况下,您不应该检查特定的浏览器类型。相反,您应该检查是否支持日期输入类型,如果不支持,则做出相应的反应
基本方法是,大多数浏览器将无法识别的输入类型转换为“文本”,因此您可以创建一个输入,将其类型设置为“日期”,然后查看是否已将其更改为“文本”:
尝试这样查找浏览器名称。有关更多信息,请参阅此
var objAgent=navigator.userAgent;
var objbrowserName=navigator.appName;
变量objOffsetName,objOffsetVersion;
//含铬
if((objOffsetVersion=objAgent.indexOf(“Chrome”)!=-1){
objbrowserName=“Chrome”;
}
//在Microsoft internet explorer中
else if((objOffsetVersion=objAgent.indexOf(“MSIE”)!=-1){
objbrowserName=“Microsoft Internet Explorer”;
}
//在Firefox中
else if((objOffsetVersion=objAgent.indexOf(“Firefox”)!=-1){
objbrowserName=“Firefox”;
}
//狩猎
else if((objOffsetVersion=objAgent.indexOf(“Safari”))!=-1){
objbrowserName=“Safari”;
}
//对于其他浏览器,“名称/版本”位于userAgent的末尾
如果((objOffsetName=objAgent.lastIndexOf(“”)+1)<
(objOffsetVersion=objAgent.lastIndexOf('/'))
{
objbrowserName=objAgent.substring(objOffsetName,objOffsetVersion);
if(objbrowserName.toLowerCase()==objbrowserName.toUpperCase()){
objbrowserName=navigator.appName;
}
}
document.write('Browser name='+objbrowserName)
如果可能的话,您应该检查支持哪些功能,而不是检查各个浏览器。似乎有一些黑客可以检查浏览器是否为日期输入提供了日期选择器:谢谢,我想这更像我需要的。一旦有可能,我会接受答案。
const testInput = document.createElement('input');
testInput.setAttribute('type', 'date');
if (testInput.type !== 'date') {
// The date input type is not supported by this browser.
}