У меня есть специальная программа проверки протокола, которая проверяет, установлен ли протокол.
Для Safari (так же, как и для Chrome) он фокусируется на элементе, запускает протокол и прослушивает размытие.
Однако в Safari, если протокол не установлен, браузер выдает всплывающее окно с предупреждением: «Safari не может открыть страницу, поскольку адрес недействителен». который, в свою очередь, вызывает событие onblur.
Кто-нибудь нашел лучший способ управления этим? При необходимости это может быть специальное решение для Safari.
//Chrome (and default for other browsers)
function checkChrome(){
bodyElement.append("<input type='text' id='focusInput' style='background: transparent;border: none;height: 0px;width: 0px;' />");
var focusBodyElement = $('#focusInput')[0], temporaryResult = false;
focusBodyElement.focus();
focusBodyElement.onblur = function () {
updateResult(true);
return;
};
//will trigger onblur
location.href = protocolStr;
//Note: timeout could vary as per the browser version, have a higher value
setTimeout(function () {
focusBodyElement.onblur = null;
if (protocolSupport[protocolStr]===null) {
updateResult(false)
}
}, 1000);
}