Вопрос

В настоящее время я пишу веб-сайт, который должен быть совместим со всеми браузерами, включая IE до версии 6.

В частности, меня интересовали проблемы совместимости с этими двумя событиями:Я использую их с <input> метка с type='text'.

  • Размытие
  • При обмене

Поиск привел к неоднозначным ответам и неполному списку.

В частности, вопрос заключается в том,:

  • Существуют ли какие-либо известные проблемы с вышеупомянутыми двумя событиями (могут быть расширены на другие HTML-события)?
  • Если да, то какие методы можно использовать для решения этих проблем?

Любая помощь очень ценится :)

Это было полезно?

Решение

Все браузеры должны поддерживать эти события довольно прилично, если вы используете их только в текстовых полях.Если вы посмотрите на Таблицы совместимости событий QuirksMode, вы увидите, что IE имеет некоторые проблемы с событием изменения в переключателях и флажках.

Если вы не очень хорошо знакомы с событиями JavaScript в браузерах, вы обнаружите, что модель событий представляет собой беспорядок из-за того, что IE решил сделать что-то отличное от стандарта.Чтобы преодолеть эту проблему, вы должны использовать фреймворк JavaScript Нравится jQuery - jQuery - запрос, ЮИ, Додзе, Инструменты обсуждения, ExtJS - ЭКСТДЖС, или Закрытие.Эти фреймворки сглаживают различия, так что вам (почти) никогда не придется иметь дело с различиями и ошибками в разных браузерах.Есть отличная статья о CodingHorror объяснение, почему вам следует рассмотреть возможность использования фреймворка JavaScript, если вы планируете использовать JavaScript на своем сайте, которое вам следует прочитать, если вам интересно почему вы должны использовать фреймворк JavaScript.

Кроме того, если вы полностью не знакомы с событиями браузера, убедитесь, что понимаете разница между onchange и onblur.

Другие советы

Я полагаю, что с этими двумя конкретными событиями проблем не больше, чем со всеми событиями в Internet Explorer плюс обычные странные причуды, такие как этот.

Общее решение обработки событий и МНОГИХ других проблем заключается в использовании фреймворка Javascript, разработчики которого пролили свою кровь, чтобы спасти вашу, оклеив бумагой все странности IE (и несколько других), такие как додзе.Как говорят люди из Додзе на этой странице:

Слово "поддержка" что-то значит очень специфично для Dojo и Dijit, в то, что говорится, что Dojo Core и Dijit поддерживают браузер, означает, что 100% доступной функциональности работает, что доступность обрабатывается правильно, и что все поддерживается интернационализация и локализация .Это такой очень высокий bar, что также означает, что, хотя мы можем не говорить, что браузеры любят Opera "поддерживается" для Dijit, это весьма вероятно, что все это будет работать там тоже, но могут быть некоторые предостережения, которые мы не смогли проработать обойти (например, привязка к доступности Опера).

Браузеры, которые, по их утверждению, "поддерживаются" на этом очень высоком уровне, - это (начиная с Dojo 1.3.2) IE 6-8, Safari 3.1 -4, Firefox 2-3.5, Chrome 1-2 (основная функциональность, включая обработку событий, также работает в Opera, Konqueror, FF 1.5, ...).

Если вы используете jQuery, попробуйте это:

$('input.text').click(function () {
        if (this.value == this.defaultValue) {
            this.value = '';
        }
    });
    $('input.text').blur(function () {
        if (this.value === '') {
            this.value = this.defaultValue;
        }
    });

$("input:text") если вы хотите настроить таргетинг на все поля ввода текста.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top