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

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№114-02-2013 09:30:18

Gegogat
Участник
 
Группа: Members
Зарегистрирован: 14-02-2013
Сообщений: 2
UA: Firefox 18.0

Можно ли быстро написать такое расширение?

Здравствуйте. В общем нужно расширение, которое будет работать примерно по такому алгоритму:
1) При открытии страницы смотрим на URL или title страницы и сравниваем с шаблоном через регулярки или что-нибудь подобное.
2) Если нашли совпадение с шаблоном, то смотрим в код страницы и ищем в нем контент совпадающий с другим шаблоном (ссылки, текст, блоки и т.д.). Первостепенная задача - нахождение ссылок.
3) Если найдено совпадение, то делаем определенное действие с найденной строкой. Для простоты, например, надо найти на странице определенную ссылку и перейти по ней.
Можно ли сделать всё это без "глубокого" погружения в тонкости? Если да, то что и где почитать именно по данному вопросу, желательно в стиле "для чайников"? Опыта написания расширений не имею. Просто задача не первостепенная, поэтому ее реализация у меня занимает далеко не первое место. Да и много времени не могу выделить на копание. Поэтому, если надо особо заморачиваться, то в моем случае это будет нецелесообразно. Вообще было бы прекрасно, если бы был какой-нить наглядный пример для реализации похожего функционала и не перегруженный лишним кодом.
Или может есть уже готовое расширение, где подобный функционал можно реализовать опционально?

Отсутствует

 

№215-02-2013 08:38:10

Gegogat
Участник
 
Группа: Members
Зарегистрирован: 14-02-2013
Сообщений: 2
UA: Firefox 18.0

Re: Можно ли быстро написать такое расширение?

Спасибо, код работает. Но натолкнулся на такую проблему. Допустим я захожу на страницу с несколькими ссылками, кликаю по ним колесиком мыши и соответственно они открываются в новых вкладках. Этот код находит нужные ссылки и мне требуется открыть эти ссылки в тех вкладках, в которых они были найдены. Или как вариант открыть ссылки в новых табах, а эти табы закрыть. Вот тут у меня загвоздка. Если пробовать открывать через document.location.href или  document.location.replace, то оно открывается на той вкладке, которая в фокусе, причем пропадает вообще вся навигация из браузера (вкладки, строка адреса и т.д.) и тупо остается эта голая страница. Через loadURI тоже открывается всё в той вкладке, которая в фокусе. Открыть в новой вкладке получилось, через window.gBrowser.loadOneTab, но я не понимаю как тогда закрыть те вкладки, на которых была найдена ссылка. Как такое можно организовать? или может есть проще путь?

Отсутствует

 

№316-02-2013 03:33:19

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2273
UA: Firefox 10.0

Re: Можно ли быстро написать такое расширение?

Gegogat пишет

Если пробовать открывать через document.location.href

Не, не делай так, тут document это документ самого окна Firefox.
Документ активной вкладки это content.document

Gegogat пишет

мне требуется открыть эти ссылки в тех вкладках, в которых они были найдены

Возможно так сойдёт ?

скрытый текст

Выделить код

Код:

var conf = {
    "about:about": /support/,
    "about:": /license/,
    "https://developer.mozilla.org/en-US/docs/Code_snippets": /Alerts_and_Notifications/
};
function test(e) {

    var doc = e.target;
    var win = doc.defaultView;
    var topDoc = win.top.document;
    if (!(topDoc.location in conf)) return;

    win.addEventListener("load", function onLoad() {
        win.removeEventListener("load", onLoad, false);
        var links = doc.links;
        for (var i = 0; i < links.length; i++) {
            if (conf[doc.location].test(links[i])) {
                topDoc.location = links[i];
                break;
            }
        }
    }, false);
}
addEventListener("DOMContentLoaded", test, false, document.getElementById("content"));

Отсутствует

 

Board footer

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