Поиск по метке: Браузеры
onMouseMove & movementX & movementY
Ковыряясь с доступными в Event полями я наткнулся на два незнакомых, которые ныне есть во всех современных браузерах. А именно: movementX & movementY. Показывают сдвиг мыши относительно предыдущего вызова callback-а. Чертовски удобно, т.к. с ними можно не считать эти сдвиги вручную. Эх, ещё бы выдали штатную возможность узнать положение мыши относительно заданного DOMElement-а без груды кода с offsetTop-ми и прочими костылями.
Пишем простое Opera-расширение
Эта статья посвящена написанию простого расширения для браузера Opera. Наше расширение будет примитивным, т.к. весь его функционал будет заключаться в user-JS для habrahabr.ru. Лента комментариев оснащена блоком, который отображает количество новых комментариев в топику и кнопку, позволяющую эту ленту обновить. Давайте добавим туда стрелки для навигации по новым комментариям.
C чего начнём?
- Создадим новую директорию для файлов расширения
- В ней создадим файл config.xml
Подборка расширений для Firefox
Решил написать о тех расширениях, которые мне приглянулись при использовании Firefox-а. Часть из них касается общего пользования, часть web-программирования. Итак, приступим.
Базовые
TabMix Plus — это расширение изменяет поведение вкладок браузера. Мне сложно сказать, что конкретно оно добавляет, потому как без него пользоваться firefox-ом я попросту не могу, а посему, не знаю, что умеет базовый менеджер(помню, разве что, что он дико примитивный, как в хроме). Больше всего меня интересовали следующие возможности: убрать крестики (в них нет никакой необходимости, при наличии кнопки-колеса у мыши), по ctrl-tab отображать последнюю активную вкладку(а не следующую), дублировать вкладку, защитить вкладку. Расширение имеет море настроек, которые придутся по вкусу "гурманам".
For in в JavaScript
Встраивая jQuery-дерево (dynatree) на сайт, я столкнулся с 1 нюансом javascript-а, который, возможно, вам ещё не попадался. Оказывается конструкция for [key] in [object] в разных браузерах работает по разному:
a = { 5:5, 3:3, 8:8, 12:12 };
for( var name in a )
{
console.log( name );
}
- Opera 12, Google Chrome: 3 5 8 12 // сортировка по алфавиту
- Firefox: 5 3 8 12 // полное соответствие
Пришлось переписать часть кода :)
Opera и загрузка файлов в CKeditor 3
Столкнулся с проблемой в Opera - после загрузки файла в диалоговом окне редактора CKEditor, если повторно загрузить файл, запрос для загрузки файла на сервер идёт не на заданный вами в настройках URL, а на два таких адреса. Как оказалось, виной тому использование события для тега body — onbeforeunload, которое срабатывает всякий раз, когда document закрывается или перегружает страницу. Сие событие не функционирует в Opera, а так как форма для загрузки файлов не меняется до тех пор, пока диалоговое окно не будет закрыто, URL в нём "складывается".
Решение проблемы - использовать тег <base>, при формировани ответа на серверной стороне. В нём можно указать такой относительный URL, который заставит все относительные ссылки на странице складывать не с реальным Location документа, а с его Base модификацией. Но! не стоит забывать о том, что мир не стоит на месте, и когда-нибудь onbeforeunload появится и в опере... а посему костыль, решающий эту проблему сейчас может насолить в будущем :)