Быстрый поиск
Введите фрагмент названия статьи для поиска
Замена главной иконки браузера Firefox
15.07.2012 | Категория: Software | Автор: ManHunter
Замена главной иконки браузера Firefox
Сегодня я познакомлю вас с еще одной настройкой браузера Firefox. Оказывается, можно поменять его иконку на любую другую, при этом даже не придется ковыряться во внутренностях исполняемого файла редакторами ресурсов. Зайдите через Проводник или любой файловый менеджер в папку с установленным браузером и проверьте наличие в ней подпапки "\chrome\icons\default". Туда складывают иконки различные расширения браузера, поэтому не исключено, что такая папка на диске уже есть. Если нет, то создайте ее. Папка "chrome" обязательно должна быть, поэтому сперва в ней создайте папку "icons", а затем уже в ней папку "default". В итоге должно получиться что-то наподобие такого пути:
C:\Program Files\Mozilla Firefox\chrome\icons\default\
Теперь идем на сайт с бесплатными иконками, выбираем нужную и сохраняем ее с расширением ico. Дальше переименовываем файл иконки в main-window.ico и переносим его в созданную папку "default". Все, осталось быстренько перезапустить браузер и, если все сделано правильно, наслаждаться результатами. Поддерживаются не только обычные, но и мультииконки (когда в одном файле содержатся иконки разных размеров). После замены иконки браузер можно переустанавливать, обновлять, делать с ним что угодно, новая иконка будет подгружаться до тех пор, пока файл main-window.ico будет находиться на месте.
Читать статью целиком »
Просмотров: 16413 | Комментариев: 15
Как удалить неудаляемые расширения Firefox
02.06.2012 | Категория: Software | Автор: ManHunter
Неудаляемое дополнение Firefox
Разработчики некоторых программ считают себя слишком умными, и пытаются принимать решения за пользователя. Одним из проявлений такой "заботы" является установка в браузеры каких-то непонятных плагинов и дополнений. Более того, такие дополнения часто нельзя удалить штатными средствами браузера, а можно только отключить. Сейчас я научу вас, как избавляться от подобных "данайских подарков" на моем примере - расширении SmartPrintButton, его впаривает инсталлятор принтера HP LaserJet Pro при установке. Как вы видите на скриншоте, кнопка "Удалить" действительно неактивна.
Читать статью целиком »
Просмотров: 54297 | Комментариев: 38
Fake YB for Firefox 1.0
04.04.2012 | Категория: Мои программы | Автор: ManHunter
Скриншот программы Fake YB for Firefox
Эта небольшая программа предназначена для изменения строки UserAgent браузера Firefox таким образом, чтобы можно было качать с файлообменника Яндекс.Народ без ввода контрольных цифр. Обычно это достигается только установкой Яндекс.Бара, который лично я считаю вредоносной троянской программой. В версиях Firefox до 3.x включительно, подменить UserAgent можно было через обычные настройки браузера, но, начиная с 4-й версии Firefox, разработчики убрали эту возможность. Всю теорию по этому вопросу вы можете почитать здесь. Поместите программу Fake YB for Firefox в папку с установленным браузером или же выберите вручную файл application.ini из папки Firefox. При необходимости измените версию Яндекс.Бара на нужную вам, затем нажмите кнопку "Patch". Для восстановления исходного состояния нажмите кнопку "Restore". Возможность восстановления сделана специально, если изменение UserAgent конфликтует с обновлением браузера, плагинов или дополнений. После применения патча или восстановления обязательно перезапустите браузер, чтобы изменения вступили в силу.
Читать статью целиком »
Просмотров: 5194 | Комментариев: 14
Какая может быть максимальная длина URL?
23.11.2011 | Категория: Web-мастеру и не только | Автор: ManHunter
Однажды, при разработке одного из проектов, я столкнулся с тем, что требовалась передача большого количества данных из формы методом GET, то есть через адресную строку. У меня под браузером Firefox все работало как надо, а вот у манагеров, сидящих на Internet Explorer, выдавалась ошибка, что запрошенная страница не может быть отображена. Как оказалось, проблема была в том, что получался слишком длинный адрес URL, и ограничения браузера не позволяют его открыть. Причем у Firefox по всей видимости, этот лимит выше, чем у Internet Explorer. Это натолкнуло меня на мысль протестировать различные браузеры на предмет максимально допустимой длины URL, и вот что у меня получилось. Для опытов был написан коротенький скрипт:Code (PHP) : Убрать нумерацию
- if ($_GET['long']) {
- echo '<script>document.write(document.location.href.length);</script>';
- }
- else {
- $long=1;
- for ($i=0; $i<23; $i++) {
- $long=ceil(2*$long);
- echo '<a href="test.php?long='.$long;
- echo '#chk='.str_repeat('x',$long).'_end!">'.$long.'</a><br>';
- }
- }
LimitRequestLine "65535" must not exceed the precompiled maximum of 8190
То есть для изменения порогового значения надо перекомпилировать сервер с нужными значениями, а это я сделать не могу, тем более на хостинговом сервере. Пропатчить все проверки в локальной версии сервера тоже не удалось, ограничение все равно оставалось. Поэтому пришлось извернуться через анкор и JavaScript.
Читать статью целиком »
Просмотров: 28891 | Комментариев: 10
Определение мобильных браузеров на PHP
30.04.2010 | Категория: Web-мастеру и не только | Автор: ManHunter
С быстрым развитием рынка мобильных устройств становится актуальной тема создания сайтов для них. Это могут быть самостоятельные страницы сайтов, или же просто облегченные версии страниц с минимумом графики, особыми стилями, версткой, чтобы сайт можно было комфортно просматривать на маленьком экранчике мобильного телефона или КПК. И лучше делать это автоматически, не заставляя пользователя искать на основном сайте какие-то дополнительные ссылки. Например, если вы откроете с мобильного телефона любую страницу моего сайта, то вас автоматически переадресует на облегченную версию этой же страницы для мобильных устройств. Определять браузер средствами PHP мы уже умеем, главная сложность - выделить сигнатуры браузеров мобильных устройств. К счастью, это уже сделано на сайте Detect Mobile Browsers. Весь сайт целиком посвящен только одному скрипту для определения мобильных браузеров, но сам скрипт обвешан ненужными наворотами и написан каким-то жутким стилем, так что в исходном виде практически бесполезен. А вот позаимствовать из него сигнатуры и некоторые другие методы определения вполне можно, что и было сделано. Код полностью вычищен и оптимизирован.Code (PHP) : Убрать нумерацию
- //--------------------------------------------------------------------
- // Функция проверки принадлежит ли браузер к мобильным устройствам
- // Возвращает 0 - браузер стационарный или определить его не удалось
- // 1-4 - браузер запущен на мобильном устройстве
- //--------------------------------------------------------------------
- function is_mobile() {
- $user_agent=strtolower(getenv('HTTP_USER_AGENT'));
- $accept=strtolower(getenv('HTTP_ACCEPT'));
- if ((strpos($accept,'text/vnd.wap.wml')!==false) ||
- (strpos($accept,'application/vnd.wap.xhtml+xml')!==false)) {
- return 1; // Мобильный браузер обнаружен по HTTP-заголовкам
- }
- if (isset($_SERVER['HTTP_X_WAP_PROFILE']) ||
- isset($_SERVER['HTTP_PROFILE'])) {
- return 2; // Мобильный браузер обнаружен по установкам сервера
- }
- if (preg_match('/(mini 9.5|vx1000|lge |m800|e860|u940|ux840|compal|'.
- 'wireless| mobi|ahong|lg380|lgku|lgu900|lg210|lg47|lg920|lg840|'.
- 'lg370|sam-r|mg50|s55|g83|t66|vx400|mk99|d615|d763|el370|sl900|'.
- 'mp500|samu3|samu4|vx10|xda_|samu5|samu6|samu7|samu9|a615|b832|'.
- 'm881|s920|n210|s700|c-810|_h797|mob-x|sk16d|848b|mowser|s580|'.
- 'r800|471x|v120|rim8|c500foma:|160x|x160|480x|x640|t503|w839|'.
- 'i250|sprint|w398samr810|m5252|c7100|mt126|x225|s5330|s820|'.
- 'htil-g1|fly v71|s302|-x113|novarra|k610i|-three|8325rc|8352rc|'.
- 'sanyo|vx54|c888|nx250|n120|mtk |c5588|s710|t880|c5005|i;458x|'.
- 'p404i|s210|c5100|teleca|s940|c500|s590|foma|samsu|vx8|vx9|a1000|'.
- '_mms|myx|a700|gu1100|bc831|e300|ems100|me701|me702m-three|sd588|'.
- 's800|8325rc|ac831|mw200|brew |d88|htc\/|htc_touch|355x|m50|km100|'.
- 'd736|p-9521|telco|sl74|ktouch|m4u\/|me702|8325rc|kddi|phone|lg |'.
- 'sonyericsson|samsung|240x|x320vx10|nokia|sony cmd|motorola|'.
- 'up.browser|up.link|mmp|symbian|smartphone|midp|wap|vodafone|o2|'.
- 'pocket|kindle|mobile|psp|treo|android|iphone|ipod|webos|wp7|wp8|'.
- 'fennec|blackberry|htc_|opera m|windowsphone)/', $user_agent)) {
- return 3; // Мобильный браузер обнаружен по сигнатуре User Agent
- }
- if (in_array(substr($user_agent,0,4),
- Array("1207", "3gso", "4thp", "501i", "502i", "503i", "504i", "505i", "506i",
- "6310", "6590", "770s", "802s", "a wa", "abac", "acer", "acoo", "acs-",
- "aiko", "airn", "alav", "alca", "alco", "amoi", "anex", "anny", "anyw",
- "aptu", "arch", "argo", "aste", "asus", "attw", "au-m", "audi", "aur ",
- "aus ", "avan", "beck", "bell", "benq", "bilb", "bird", "blac", "blaz",
- "brew", "brvw", "bumb", "bw-n", "bw-u", "c55/", "capi", "ccwa", "cdm-",
- "cell", "chtm", "cldc", "cmd-", "cond", "craw", "dait", "dall", "dang",
- "dbte", "dc-s", "devi", "dica", "dmob", "doco", "dopo", "ds-d", "ds12",
- "el49", "elai", "eml2", "emul", "eric", "erk0", "esl8", "ez40", "ez60",
- "ez70", "ezos", "ezwa", "ezze", "fake", "fetc", "fly-", "fly_", "g-mo",
- "g1 u", "g560", "gene", "gf-5", "go.w", "good", "grad", "grun", "haie",
- "hcit", "hd-m", "hd-p", "hd-t", "hei-", "hiba", "hipt", "hita", "hp i",
- "hpip", "hs-c", "htc ", "htc-", "htc_", "htca", "htcg", "htcp", "htcs",
- "htct", "http", "huaw", "hutc", "i-20", "i-go", "i-ma", "i230", "iac",
- "iac-", "iac/", "ibro", "idea", "ig01", "ikom", "im1k", "inno", "ipaq",
- "iris", "jata", "java", "jbro", "jemu", "jigs", "kddi", "keji", "kgt",
- "kgt/", "klon", "kpt ", "kwc-", "kyoc", "kyok", "leno", "lexi", "lg g",
- "lg-a", "lg-b", "lg-c", "lg-d", "lg-f", "lg-g", "lg-k", "lg-l", "lg-m",
- "lg-o", "lg-p", "lg-s", "lg-t", "lg-u", "lg-w", "lg/k", "lg/l", "lg/u",
- "lg50", "lg54", "lge-", "lge/", "libw", "lynx", "m-cr", "m1-w", "m3ga",
- "m50/", "mate", "maui", "maxo", "mc01", "mc21", "mcca", "medi", "merc",
- "meri", "midp", "mio8", "mioa", "mits", "mmef", "mo01", "mo02", "mobi",
- "mode", "modo", "mot ", "mot-", "moto", "motv", "mozz", "mt50", "mtp1",
- "mtv ", "mwbp", "mywa", "n100", "n101", "n102", "n202", "n203", "n300",
- "n302", "n500", "n502", "n505", "n700", "n701", "n710", "nec-", "nem-",
- "neon", "netf", "newg", "newt", "nok6", "noki", "nzph", "o2 x", "o2-x",
- "o2im", "opti", "opwv", "oran", "owg1", "p800", "palm", "pana", "pand",
- "pant", "pdxg", "pg-1", "pg-2", "pg-3", "pg-6", "pg-8", "pg-c", "pg13",
- "phil", "pire", "play", "pluc", "pn-2", "pock", "port", "pose", "prox",
- "psio", "pt-g", "qa-a", "qc-2", "qc-3", "qc-5", "qc-7", "qc07", "qc12",
- "qc21", "qc32", "qc60", "qci-", "qtek", "qwap", "r380", "r600", "raks",
- "rim9", "rove", "rozo", "s55/", "sage", "sama", "samm", "sams", "sany",
- "sava", "sc01", "sch-", "scoo", "scp-", "sdk/", "se47", "sec-", "sec0",
- "sec1", "semc", "send", "seri", "sgh-", "shar", "sie-", "siem", "sk-0",
- "sl45", "slid", "smal", "smar", "smb3", "smit", "smt5", "soft", "sony",
- "sp01", "sph-", "spv ", "spv-", "sy01", "symb", "t-mo", "t218", "t250",
- "t600", "t610", "t618", "tagt", "talk", "tcl-", "tdg-", "teli", "telm",
- "tim-", "topl", "tosh", "treo", "ts70", "tsm-", "tsm3", "tsm5", "tx-9",
- "up.b", "upg1", "upsi", "utst", "v400", "v750", "veri", "virg", "vite",
- "vk-v", "vk40", "vk50", "vk52", "vk53", "vm40", "voda", "vulc", "vx52",
- "vx53", "vx60", "vx61", "vx70", "vx80", "vx81", "vx83", "vx85", "vx98",
- "w3c ", "w3c-", "wap-", "wapa", "wapi", "wapj", "wapm", "wapp", "wapr",
- "waps", "wapt", "wapu", "wapv", "wapy", "webc", "whit", "wig ", "winc",
- "winw", "wmlb", "wonu", "x700", "xda-", "xda2", "xdag", "yas-", "your",
- "zeto", "zte-"))) {
- return 4; // Мобильный браузер обнаружен по сигнатуре User Agent
- }
- return false; // Мобильный браузер не обнаружен
- }
Просмотров: 34297 | Комментариев: 14