Эквивалент скрипта контента в расширении Firefox? - PullRequest
5 голосов
/ 28 февраля 2012

Я довольно новичок в Firefox и его расширениях.Есть ли что-то вроде скрипта, использующего JavaScript, который запускается каждый раз при загрузке страницы?Мое расширение Chrome внедряет файл CSS, создавая тег ссылки, используя js.Как мне перенести это на Firefox?

Ответы [ 3 ]

7 голосов
/ 28 февраля 2012

Вы хотите API pageMod .

var pageMod = require("page-mod");
pageMod.PageMod({
  include: "*.example.org",
  contentScript: 'window.alert("Page matches ruleset");'
});
0 голосов
/ 07 марта 2012

Раньше я использовал Greasemonkey в Firefox. Фактически, Chrome Extensions начинали как мимика с Greasemonkey и были источником сценариев контента.

0 голосов
/ 07 марта 2012

Вы можете использовать mozIJSSubScriptLoader для выполнения JavaScript (chrome: //myExtension/content/script.js) каждый раз при загрузке веб-страницы.Вот пример кода, который вам нужно изменить в соответствии с вашим каталогом chrome

window.addEventListener("load", function load(event){
    window.removeEventListener("load", load, false); //remove listener, no longer needed
    myExtension.init();  
},false);

var myExtension = {
  init: function() {
    var appcontent = document.getElementById("appcontent");   // browser
    if(appcontent){
      appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true);
    }
    var messagepane = document.getElementById("messagepane"); // mail
    if(messagepane){
      messagepane.addEventListener("load", function(event) { myExtension.onPageLoad(event); }, true);
    }
  },

  onPageLoad: function(aEvent) {
    var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
    // do something with the loaded page.
    // doc.location is a Location object (see below for a link).
    // You can use it to make your code executed on certain pages only.
    var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader);
              loader.loadSubScript("chrome://myExtension/content/script.js", doc); 

    // add event listener for page unload 
    aEvent.originalTarget.defaultView.addEventListener("unload", function(event){ myExtension.onPageUnload(event); }, true);
  },

  onPageUnload: function(aEvent) {
    // do something
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...