Firefox Addon: добавить некоторые функции и объект в объект окна - PullRequest
2 голосов
/ 11 декабря 2011

Я только начал использовать FireFox Builder для создания простого дополнения. Я понял, что не могу получить прямой доступ к объекту окна.

То, что я хочу сделать, - это получить объект окна и загрязнить его некоторыми классами и функциями, чтобы я мог вызывать их со страницы.

Ниже приведен текущий код:

// This is an active module of the ritcoder Add-on
require("widget").Widget({
    id: "widgetID1",
    label: "My Mozilla Widget",
    contentURL: "http://www.mozilla.org/favicon.ico",
    onClick: function(evt){
        var tabs = require("tabs");
        var activeTab = tabs.activeTab;

        var notifications = require("notifications");
        notifications.notify({
          title: "Jabberwocky",
          text: "'Twas brillig, and the slithy toves",
          data: "did gyre and gimble in the wabe",
          onClick: function (data) {
            console.log(data);
            // console.log(this.data) would produce the same result.
          }
        });

        activeTab.window.a=20; //this fails
        context.alert('yesx');
    }
});

Как мне это сделать? Вставьте некоторый код в активную страницу, чтобы он мог быть вызван.

С уважением,

1 Ответ

2 голосов
/ 11 декабря 2011

Вам необходимо использовать tab.attach () , чтобы запустить скрипт содержимого в контексте вкладки, а затем использовать unsafeWindow , чтобы добавить свойства, которые может видеть скрипт страницы.(Вам также следует прочитать введение в Сценарии содержимого .)

SDK Addon не предоставляет прямой доступ (без сценария содержимого) к странице из кода надстройки, посколькуон пытается быть более совместимым с планами по запуску веб-страниц в процессах, отличных от процессов браузера и надстройки.

...