我在javascript中发现了各种方法来检测各种浏览器中的自定义协议,即Chrome,FF,IE和Edge。但是我找不到任何适用于Safari浏览器的东西。任何人都可以帮我解决这个问题吗?
即使看起来如此,这也不是一个重复的问题。所有已知的解决方案都不适合用于MAC的Safari浏览器。我想要这个特殊的解决方案。提前谢谢!
答案 0 :(得分:0)
在https://gist.github.com/rajeshsegu/3716941,您可以找到浏览器检测的要点。尽管它不包含Safari块,但您可以简单地复制Chrome块,它就像一个魅力。
对于懒惰的,这里是函数:
function launchSafari(){
var url = getUrl(),
protcolEl = $('#protocol')[0];
isSupported = false;
protcolEl.focus();
protcolEl.onblur = function(){
isSupported = true;
console.log("Text Field onblur called");
};
//will trigger onblur
location.href = url;
//Note: timeout could vary as per the browser version, have a higher value
setTimeout(function(){
protcolEl.onblur = null;
result()
}, 500);
}
这就是所谓的地方:
//Handle Click on Launch button
$('#launch').click(function(){
if($.browser.mozilla){
launchMozilla();
}else if($.browser.chrome){
launchChrome();
}else if($.browser.msie){
launchIE();
}else if($.browser.safari){
launchSafari();
}
});
PS:我不是JS专家。也许有人可以改进JS代码