Как я могу получить это очень простое расширение pageAction для Chrome, портированное для работы в Firefox и Safari

Это очень простое расширение Chrome, использующее pageAction. Он оценивает текущий URL-адрес, помещает значок в адресную строку, если URL-адрес соответствует условию (местоположению, на самом деле), и изменяет URL-адрес (используя бит из исходного местоположения) на новое место, когда пользователь щелкает значок.

Это было просто и понятно для создания расширения Chrome. Документы просты, и Google предоставляет несколько примеров кода, которые можно адаптировать и использовать. Наконец, CWS легко развертывать и из него.

Однако у меня нет опыта попыток сделать то же самое в FF или Safari.

Может кто-нибудь дать мне несколько советов с примерами кода и советами по упаковке?

Спасибо!

Background.js

function checkForValidUrl(d, c, e) {
    if (c.status === "loading") {
        var b = e.url.split("/")[2];
        var a = e.url.split("/")[3];
        if (b === "www.somewhere.com" && a === "unfiled") {
            chrome.pageAction.show(d)
        }
    }
}
chrome.tabs.onUpdated.addListener(checkForValidUrl);
chrome.pageAction.onClicked.addListener(function (b) {
    var a = b.url.split("/")[4].split("+").slice(0, 1);
    chrome.tabs.update(b.id, {
        url: "http://www.somewhere.com/filed/" + a
    })
});

Манифест

{
  "name": "MyExtension",
  "version": "1.0",
  "description": "This is nifty",
  "background": { "scripts": ["background.js"] },
  "page_action" :
  {
    "default_icon" : "icon-19.png",
    "default_title" : "Click to do your stuff"
  },
  "permissions" : [
    "tabs"
  ],
  "icons" : {
    "48" : "icon-48.png",
    "128" : "icon-128.png"
  },
  "manifest_version": 2
}

person user1452893    schedule 03.11.2013    source источник


Ответы (1)


Этот ответ предназначен только для Safari.

Для версии этого расширения для Safari вам понадобятся следующие исходные материалы:

  • «глобальная» HTML-страница (эквивалент Safari фоновой страницы расширения Chrome)
  • скрипт, который запускается на глобальной странице, предоставляется либо как встроенный <script>, либо как файл .js
  • значок для кнопки панели инструментов, называемый «элементом панели инструментов» на языке расширений Safari.

После создания нового пустого расширения с помощью Extension Builder создайте вышеупомянутые файлы или переместите их в папку расширения. В Extension Builder выберите глобальную страницу. Создайте элемент панели инструментов, присвойте ему метку и идентификатор и выберите изображение кнопки панели инструментов. Вам также потребуется указать команду для элемента панели инструментов; просто введите любую строку, например "munge-url".

В свой глобальный сценарий вы добавите прослушиватель для события «команда», которое Safari будет отправлять на глобальную страницу, когда пользователь нажимает кнопку на панели инструментов. Функция прослушивания прочитает URL-адрес текущей вкладки, исправит ее и установит URL-адрес вкладки на удаленный. Так:

safari.application.addEventListener('command', function (evt) {
    if (evt.command == 'munge-url') {
        var currentTab = safari.application.activeBrowserWindow.activeTab;
        var oldUrl = currentTab.url;
        var newUrl = mungeUrl(oldUrl);
        currentTab.url = newUrl;
    }
}, false);

Конечно, функция mungeUrl должна быть определена.

Это должно быть об этом. Если вы хотите пофантазировать, вы можете добавить код, который будет отключать или включать кнопку панели инструментов в зависимости от URL-адреса текущей вкладки; для этого вам понадобится прослушиватель для события «проверить», которое обсуждается на странице эта страница Руководства по разработке расширений Safari.

person chulster    schedule 04.11.2013