Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

Firefox » Запустить Firefox с определенными размерами окна. » 07-05-2013 13:59:36

Есть ли возможность при запуске Firefox указать размер и положение окна браузера. Хочу прописать эти параметры в ярлыке, для Windows 7.

Разработка » Получить размер загруженной страницы » 27-02-2013 15:13:45

okkamas_knife спасибо.
[code]
var pageSize         = null,
    nsICacheService  = Components.interfaces.nsICacheService,
    ACCESS_READ      = Components.interfaces.nsICache.ACCESS_READ,
    cacheService     = Components.classes["@mozilla.org/network/cache-service;1"].getService(nsICacheService),
    httpCacheSession = cacheService.createSession("HTTP", 0, true);

function openCacheEntry( url, callBack ) {
    var tries = 0,
        checkCacheListener = {
            onCacheEntryAvailable : function ( entry, access, status ) {
                if ( entry || tries === 1 ) {
                    callBack(entry);
                } else {
                    tries++;
                }
            }
        };

    httpCacheSession.asyncOpenCacheEntry( url, ACCESS_READ, checkCacheListener, true );
}

httpCacheSession.doomEntriesIfExpired = false;

openCacheEntry( content.document.location.toString().replace(/#.*$/, ""), function (cacheEntry) {
    if (cacheEntry) {
        pageSize =

Разработка » Получить размер загруженной страницы » 26-02-2013 20:15:24

Выделить код

Код:

function getPageSize() {
    var pageSize = null,
        cacheService = Components.classes["@mozilla.org/network/cache-service;1"].getService(Components.interfaces.nsICacheService),
        httpCacheSession = cacheService.createSession("HTTP", 0, true);

    httpCacheSession.doomEntriesIfExpired = false;

    var cacheEntryDescriptor = httpCacheSession.openCacheEntry(content.document.location.toString().replace(/#.*$/, ""), Components.interfaces.nsICache.ACCESS_READ, false);

    if (cacheEntryDescriptor) {
        pageSize = Math.round(cacheEntryDescriptor.dataSize / 1024 * 100) / 100;
    }

    alert('Размер страницы ' + pageSize + 'KB');
}


// Ждем загрузки страницы
if (content.document && content.document.readyState === 'complete') {
    getPageSize();
} else {
    content.addEventListener('load', getPageSize, false);
}

В новых версиях Firefox вышеприведенный код перестал работать, вот ошибка:

[code]Ошибка: NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x

Разработка » Отследить загрузку/инициализацию расширения » 21-02-2013 16:50:16

Как отследить загрузку/инициализацию расширения которое встраивается в toolbarpalette.
Это такое расширение которое после установки нужно еще перетащить на панель.

Дело в том что сразу после установки расширения когда его еще пользователь не добавил на панель, скрипты выполняются но DOM-элементы расширения не доступны.

Вот нужно запустить скрипты на выполнение только когда расширение попадет на панель.

Вот само расширение (я привожу малую часть):
[code]
<?xml version="1.0" encoding="utf-8"?>

<?xml-stylesheet href="chrome://pam/skin/overlay.css" type="text/css"?>

<overlay id="pam-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <script type="application/javascript;version=1.8" src="scripts/utils.js"></script>
    <script type="application/javascript;version=1.8" src="scripts/overlay.js"></script>

    <toolbarpalette id="BrowserToolbarPalette">
        <toolbaritem id="pam-toolbaritem" class="chromeclass-toolbar-additional" removable="true" title

Разработка » Получить размер загруженной страницы » 27-12-2012 14:44:52

Для того чтоб получить вес загруженной страницы (это чистый html, без css, image и прочего) можно воспользоваться следующим скриптом:

Выделить код

Код:

function getPageSize() {
    var pageSize = null,
        cacheService = Components.classes["@mozilla.org/network/cache-service;1"].getService(Components.interfaces.nsICacheService),
        httpCacheSession = cacheService.createSession("HTTP", 0, true);

    httpCacheSession.doomEntriesIfExpired = false;

    var cacheEntryDescriptor = httpCacheSession.openCacheEntry(content.document.location.toString().replace(/#.*$/, ""), Components.interfaces.nsICache.ACCESS_READ, false);

    if (cacheEntryDescriptor) {
        pageSize = Math.round(cacheEntryDescriptor.dataSize / 1024 * 100) / 100;
    }

    alert('Размер страницы ' + pageSize + 'KB');
}


// Ждем загрузки страницы
if (content.document && content.document.readyState === 'complete') {
    getPageSize();
} else {
    content.addEventListener('load', getPageSize, false);
}

Разработка » Получить размер загруженной страницы » 26-12-2012 16:44:51

Подскажите как можно получить размер загруженной страницы из расширения.

Разработка » Проверка расширений волидатором мозиллы перед заливкой » 13-12-2012 14:35:43

При заливке расширения на Мозиллу (https://addons.mozilla.org/ru/firefox/) оно проходит автоматическое тестирование.
После тестов можно посмотреть отчет. В отчете постоянно присутствуют предупреждения о том что расширение загрязняет глобальную область видимости,
то есть создает глобальные переменные. Например протестировав такой вот код:
[code]
nsRDS.uniqueName = (function () {
    var uniqueA,
        uniqueB,
        uniqueC;

    return {
        methodA : function () {
            uniqueA = 'test A';
            uniqueA += ' string';
            console.log(uniqueA);
        },

        methodB : function () {
            uniqueB = 'test B';
            uniqueB += ' 3333';
            console.log(uniqueB);
        },

        methodC : function () {
            uniqueC = 'test C';
            uniqueC += ' ----';
            console.log(uniqueC);
        },

        methodABC : function () {
            console.log(uniqueA + ' @@ ' + uniqueB + ' @@ ' + uniqueC);
        }

Разработка » Отследить открытие/скрытие Панели дополнения. » 28-11-2012 20:17:33

Подскажите как с расширения отследить скрытие/открытие Панели дополнения (Ctrl+\) в Firefox.

Разработка » Отправка щелчков мышки во flash-объекты из расширения » 25-10-2012 12:45:32

Ну по сути флешки на сайте являются независимыми элементами и все события они обрабатывают напрямую и сами. И если в флешке не предусмотрено пробрасывание события из скрипта, то наверное никак.
Но я могу ошибаться.

Разработка » bad URI or cross-site access not allowed » 22-10-2012 12:36:48

Я вставляю файлы из расширения во внешние страницы через протокол "resource://"

Идем в файл chrome.manifest и  там пишем:

Выделить код

Код:

resource        myextimages                                     chrome/skin/images/

теперь ключевое слово "myextimages" ссылается на папку "chrome/skin/images/"
используем во внешней странице:

Выделить код

Код:

resource://myextimages/logo.png

//  или если в папке "chrome/skin/images/" есть еще папка например "icons"

resource://myextimages/icons/logo.png

Разработка » Получить IP сайта средствами Firefox » 20-10-2012 15:11:27

liteTua пишет

Magneto
Эта функция делает дополнительный запрос к сайту или использует уже полученные при входе адреса?

20-10-2012 14:49:46
Где этот код будет работать? В кнопке, дополнении? Функцию callBack самому определять?

Эта функция не посылает никаких HTTP запросов ни на сайт ни куда либо. Используется TCP или UPD протоколы эти запросы шлются на DNS-сервера, http://ru.wikipedia.org/wiki/%D0%9A%D0% … %D1%8B_DNS

Если уже было обращение к какому либо сайту то его IP уже закешировано. (о кешировании я сделал вывод замеряв время получения IP для не посещеных сайтов (20 - 100 мс) и посещенных (1 мс)).

Эту функцию я использую в расширении для браузера Firefox.

Функция callBack конечно должна быть Ваша, в этой функции Вы можете обработать все полученные данные.

Разработка » Получить IP сайта средствами Firefox » 20-10-2012 13:56:31

Вообщем как я и предполагал у Firefox есть модуль который преобразовывает домен сайта в IP (понятно что браузер обращается за этим к DNS серверу),
но главное что это происходит достаточно прозрачно и не требует использования сторонних сервисов.

Вот код, возможно что кому то пригодится:

[code]
function getIP (domain, callBack) {
    var dns = Components.classes['@mozilla.org/network/dns-service;1'].getService(Components.interfaces.nsIDNSService),
        thread = Components.classes["@mozilla.org/thread-manager;1"].getService().mainThread,

        dnslistener = {
            onLookupComplete: function (aRequest, aRecord, aStatus) {
                var arrayIP = [];

                if (aStatus === 0) {
                    while (aRecord && aRecord.hasMore()) {
                        arrayIP.push(aRecord.getNextAddrAsString());
                    }
                } else {
                    arrayIP = null;
                }

                callBack(domain, arrayIP);
            }

Разработка » javascript 1.7 and расширения » 16-10-2012 15:24:25

Большой пишет

Добрый день!

Каким образом подключить в приложении javascript 1.7
Не работает let, range() и другое.

Выделить код

Код:

<script type="application/javascript;version=1.7" src="my.js"></script>

Разработка » Получить IP сайта средствами Firefox » 06-09-2012 13:17:36

Ведь в браузере есть механизм при помощи которого он преобразовывает имена в IP, и кеширует их.
Как получить IP сайта средствами браузера Firefox в расширении?

Что-то типа:

Выделить код

Код:

var ip = convertToIP(domain);

Разработка » Определить что сайт находится в BlackList » 11-07-2012 12:22:11

1

Выделить код

Код:

content.document.documentURI

на фишинговых страницах, действительно возвращает адрес типа : about:blocked?e=malwareBlocked&u=http%3A//chazot.ru/&s=blacklist&c=UTF-8&d=%D0%98%D0%BC%D0%B5%D0%B5

2
Но если установить фишинговую страницу в качестве домашней то возвращает : about:blank

3
И еще хуже, если в новой вкладке открыть сайт, например http://habrahabr.ru/, а после в адресную строку ввести адрес фишингового сайта, например ( http://ianfette.org/ или http://chazot.ru/ или http://culturedep.ru/ или http://arbat.net.ua/ ), то вернется : http://habrahabr.ru/, тоесть адрес предыдущего сайта.

Разработка » Определить что сайт находится в BlackList » 10-07-2012 18:26:09

Пандёнок пишет

При обнаружении фишингового сайта браузер открывает страницу about:blocked?e=malwareBlocked&u=адрес&s=blacklist&c=*

При этом браузер не меняет адрес в адресной строке и возвращает адрес фишингового сайта

okkamas_knife пишет

но по идее браузер должен както сигнализировать что это плохой сайт значком там или специфическим сообщением - соответственно мониторь его наличие перед проверкой и если есть сигнал то соответственно не запускай парсинг данных

Вот я и спрашиваю как узнать что данный сайт находится в БлэкЛисте (не отправляя запросы в гугл и не ковыряя базу Firefox)?

Разработка » Определить что сайт находится в BlackList » 10-07-2012 17:27:15

Значит пишу небольшое расширение для Firefox, это расширение анализирует и получает некоторые значения из документа текущей открытой страницы.
Тоесть после полной загрузки веб-страницы расширение приступает к анализу документа и выводит пользователю нужные данные.

Так вот в чем проблема, когда пользователь посещает фишинговые сайты (сайты с вирусами), браузер подменяет оригинальные страницы своей заглушкой с предупреждением.
В этом случае если попробовать получить документ текущей страницы (которая с предупреждением), например через

Выделить код

Код:

content.document

, то браузер возвращает разные документы:
1. возвращает документ с пустыми тегами <body> и <head>
2. возвращает разметку заглушки с предупреждением
3. возвращает документ предыдущей страницы

Таким образом очень проблематично узнать что браузер считает текущую страницу фишинговой. И что не нужно моему расширению парсить ее.

Как узнать что браузер считает текущую страницу фишинговой и заменил документ на свое предупреждение.

Firefox » Идентификация сайтов содержащих вирусы. » 10-07-2012 11:15:07

Как Firefox идентифицирует сайты которые содержат вирусы? Например - http://chazot.ru/.
Браузер содержит так называемый BlackList или каждый раз обращается на внешний сервер за данными?
Я пробовал сниффером посмотреть на сетевую активность - но ничего толкового не увидел. Если все адреса хранятся
в списке, то где находится этот список и если он обновляется то откуда?
Вообщем интересует вся информация о данной технологии.

Разработка » Определить активную вкладку » 23-05-2012 19:08:33

Выделить код

Код:

var arrayTabs = gBrowser.tabContainer.getElementsByTagName('tab'),
            activeTab;

        for (var l = arrayTabs.length, i = 0; i < l; i += 1) {
            if (arrayTabs[i].selected) {
                activeTab = arrayTabs[i];
                break;
            };
        };

Оказалось что вкладки и страницы связаны непонятным образом)). А как теперь перебрать имеющиеся страницы и сопоставить их со вкладками?

Разработка » Определить активную вкладку » 23-05-2012 13:12:13

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

Выделить код

Код:

myBuuton.addEventListener('click', function() {

    if (текущая вкладка) {
        делаем нужные операции со страницей
        //content.document.body.style.background = 'black';
    };


}, false);

Разработка » Тег <audio> в Firefox » 26-07-2010 02:34:39

Unghost - прежде чем задать вопрос я пытался сам во всем разобраться, и по выше указанным ссылкам я уже ходил.
Но так как я очень плохо знаю английский, я мало что понял, - я также догадался воспользовался переводчиком от Google ......

Ну как то так.

Разработка » Тег <audio> в Firefox » 25-07-2010 22:59:43

Заинтересовался новым тегом <audio>

Хочу реализовать простой плеер с поддержкой плейлистов, но проблема в том что у меня не получается запустить следующую композицию в браузере Firefox.
К примеру в Opera все элементрно, достаточно обьявить(заменить) параметр src, к примеру вот так:

Выделить код

Код:

audio.setAttribute('src', 'song.ogg');

ну или так:

Выделить код

Код:

audio.src = 'song.ogg';

и эта композиция сразу становится доступной для проигрывания.
Как я выше говорил в Firefox это не работает.

Посоветуйте как реализовать переключение на другую композицию в Firefox.

Вот код который есть:

[code]
    <script type="text/javascript">
        var balanUrl = 'http://dl.dropbox.com/u/6001712/player/audio-100/Dan%20Balan%20-%20Chica%20Bomb.ogg';
        var plumbUrl = 'http://dl.dropbox.com/u/6001712/player/audio-100/Plumb%20-%20Hang%20On.ogg';
        var sergeUrl = 'http://dl.dropbox.com/u/6001712/player/audio-100/Serge%20Devant%20Emma%20Hewitt%20-%20Take%20Me%20With%20You.ogg';
       
       

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]