Инсайт
Я занимался добавлением поддержки перетаскивания файлов HTML5 на сайт, где я делаю div, чтобы уведомить пользователя, что он может перетаскивать файлы туда, когда файлы перетаскиваются в определенный контейнер. Все шло отлично и прекрасно работало дома, сегодня утром я вхожу на работу, и вдруг все работает не так.
Проблема
Событие Javascript dragover
, похоже, не срабатывает в старых операционных системах до 1.) Вы отпускаете кнопку мыши, либо в исходном месте файлов, либо на странице; или 2.) При наведении курсора мыши за пределы браузера.
Я создал это демо jsFiddle, демонстрирующее проблему: http://jsfiddle.net/q4Evq/
Мой домашний компьютер работает под управлением Windows 7, и приведенная выше демонстрация работает нормально, как только вы перетаскиваете файл или что-либо поверх элемента div, фон мгновенно становится красным. На моем компьютере, работающем под управлением Windows XP, фон не станет красным, пока я не перетащу его из окна div и за его пределы.
Это, похоже, не зависит от браузера, так как я пробовал IE8, Firefox 9, Chrome 17 на компьютере с Windows XP и IE9, Firefox 9 и Chrome 16 на компьютере с Windows 7, и результат одинаков для всех из них в том, что он работает на 7, но не XP.
Мой вопрос касается того, эта проблема только что затронула меня и мой компьютер, на котором я сейчас работаю, или у всех работает Windows XP? Это работает в Vista? Что-то не так с моим JavaScript или другим способом заставить эту функцию работать?