Как уже упоминалось в комментарии Pointy, вы не хотите условно определять функции.Вместо этого вы хотите определить функцию для всех браузеров, а затем выполнить код в теле, условно зависящий от браузера.
В этом сообщении stackoverflow подробно рассказывается о том, как обнаружить определенные браузеры, поэтому я не буду повторятьсячто здесь: Как определить браузер Safari, Chrome, IE, Firefox и Opera?
затем можно написать что-то вроде
function f(...) {
if (isSafari()) {
// Safari specific stuff
else {
// other stuff
}
}
, где функция isSafari
является оберткой вокруг чека из сообщения stackoverflow, на которое я ссылался.
РЕДАКТИРОВАТЬ: было отмечено, что вы хотите, чтобы это основывалось на конкретной функциональности, а не на браузерах.В этом случае вы должны заменить isSafari
в моем примере выше соответствующей функцией, чтобы проверить, поддерживает ли текущий браузер желаемую функциональность, а не проверять тип браузера.
Ссылка, которую я предоставил, фактически проверяет функциональность браузера, чтобы определить, какой браузер используется, поэтому вы должны иметь возможность использовать это для решения вашей проблемы.