Хорошо, мы все знаем, что нюхает браузер плохо .Я не собираюсь перефразировать всю дискуссию здесь, и ТАК не подходит для этого в любом случае.Я ищу решение проблемы, которая, по-видимому, не предлагает предложенную альтернативу обнаружения признаков.
В моем конкретном случае это было вызвано кодом, подобным следующему:
<form name="something" method="POST">
<input name="input1"><input name="input2"> <!-- etc -->
<input id="mysubmit" type="submit" value="Submit me">
</form>
<!-- during jquery initialization -->
$('#mysubmit').click(function() {
sendAjaxRequestInsteadOfRealForm($('#input1').val(), $('#input2').val());
return false;
});
Теперь я знаю, что реальный ответ здесь - «не используйте input type="submit"
с привязками jQuery» (я полагаю, кроме submit
).Но этот код работал, как и ожидалось, во всех наших «официально» поддерживаемых браузерах, и только когда у нас был пользователь, который случайно попробовал сайт в IE 7, это стало проблемой (а именно, он обошел привязку и отправил формупо старинке).
Мы не проводим тестирование в IE 7. Поэтому мы пытаемся использовать обнаружение браузера на нашей главной странице и предупреждаем пользователей, чей User-Agent указывает, что их браузер не поддерживается.Я не люблю делать это, но мне неясно, какова альтернатива.Я не могу придумать стратегию обнаружения функций, которая бы обнаруживала «позволяет привязкам кликов на кнопках отправки заменять фактическую отправку».Какой лучший подход здесь?
РЕДАКТИРОВАТЬ для пояснения: я не прошу альтернативы коду выше.Я знаю, что они есть.Я спрашиваю, как мне определить вышеупомянутый код как проблемный, чтобы он не попал в производственную среду, не проверяя его в IE 7.