Рубрика: browser

RegExp в Presto

Opera в своё время прославилась тем, что не поддерживала com­pile() у регулярных выражений. Дело было в движке Presto (которые почему-то не желает их копилировать). И вот случилось — Opera переехала на Blink. Теперь com­pile() поддерживается.… но не в Opera Mini, которая как была на Presto, там так и остаётся.

Показать в JavaScript alert без остановки таймера

Вообще, использовать стандартный JavaScript alert даже для отладки — плохая идея. Для сообщений есть отличные окошки из Boot­strap JS или jQueryUI, для отладочной информации — console.log. Но иногда нужно написать окошко очень-очень быстро. Например, сдать бета-версию приложения, а окошко потом переделать. В браузерах, основанных на WebKit (Chrome, Safari, JavaFX WebEngine) открытый alert считается чрезвычайным событием…

Прочитать статью целиком

JavaScript charset в браузере

Согласно стандарту HTML5, стандартная кодировка страницы — UTF-8. А вот с JavaScript всё сложнее. Пусть у нас есть какой-то JSON. Напишем функцию, которая его возвращает: func­tion getOut­line­J­son() { return { “title” : “Элемент1” }; } Сохраняем в отдельный файл, привязываем через <script>. Пытаемся вывести в консоль: document.addEventListener(‘DOMContentLoaded’, func­tion() { console.log(getOutlineJson()); }); В консоли будет JSON

Прочитать статью целиком

showModalDialog’s returnValue is undefined in Chrome

С мест сообщают – в Chrome у show­Modal­Dia­log return­Val­ue – unde­fined. Баг известен с 2010 года и пока (16 сентября 2012) не исправлен. Фиксить так: В окне, которое вызывает модальное: window.returnValue = unde­fined; var result = window.showModalDialog(“modalwindow.aspx”, win­dow, “dialogHeight:650px; dialogWidth:900px;”); if (result == unde­fined) result = window.returnValue; if (result != null && result != “unde­fined”)…

Прочитать статью целиком

IE теряет фокус на ссылке

В IE обнаружен загадочный баг. Если ASP.Net страница: делает (например, по нажатию на страницу) redi­rect на другую через anchor (т.е. otherPage.aspx#anchor) в IIS настроен ISAPI_Rewrite (локально повторить не удалось) браузер – IE (повторяется в т.ч. в 9-ом) То может случиться так, что anchor “отбросится” и страниця загрузится как otherPage.aspx. Выловить и перенастроить практически невозможно. Единственный…

Прочитать статью целиком

Click() doesn’t work in Chrome and Safari

Иногда нужно сделать, чтобы файл загружался не через форму по умолчанию (которая отличается у разных браузеров), а по нажатию на кнопку. Форму прячут, вместо неё ставят кнопку и вызывают по щелчку для неё click() для спрятанной формы. Как правило, это работает. Но в браузерах на движке WebKit (например, Chrome и Safari) может и не сработать.…

Прочитать статью целиком

Script: Play mp3 at background with JavaScript

Как сделать фоновую мелодию для веб-страницы из mp3-файла? Для начала — убедиться, что она нужна. Я, например, считаю, что единственное место во всём Вебе, где уместны фоновые мелодии — это игры. Пожалуйста, ставьте такие скрипты только в них. Так как стандарт очень долго хранил молчание насчёт фоновых мелодий, каждый браузер реализовывал его по-своему Путаница тут…

Прочитать статью целиком

Checkbox в Chrome и Safari

В браузерах, основанных на WebKit, иногда портятся check­­box-ы. Девид Уолш описал проблему и дал великолепное решение: .check­boxList li { /* ..or what­ev­er the par­ent is */ line-height: 20px; }

JavaScript: быстрые циклы

length в JavaScript — штука медленная. Это очень хорошо видно по скорости выполнения циклов. Вовремя заменив for на while, можно получить выигрыш в производительности в 7 раз. В умелых руках циклы JavaScript прекрасно заменяют друг друга. А значит, есть повод дополнить старый постинг о среднем арифметическом. var digitRegEx=/^-?d+([,.]d+)?$/g; func­tion arith­meticMean() { var len = arguments.length,…

Прочитать статью целиком

JavaScript: concat для getElementsByTagName

Иногда гибкость JavaScript немного обманывает. Например, все знают, что getEle­ments­By­Tag­Name возвращает вроде бы массив. И если нам нужно получить все input и textarea, то мы посмотрим в справке, что есть фунция con­cat и — склеим! Увы, нас ждёт разочарование. То, что приходит — это набор, но не совсем массив. Его надо преобразовывать в Array и…

Прочитать статью целиком