Вставить файл CSS в веб-страницу с расширением Firefox - PullRequest
8 голосов
/ 04 декабря 2011

Я пишу расширение для Firefox и использую их SDK для дополнений;но я не могу понять, как вставить локальный файл CSS из папки данных в веб-страницу.Было бы замечательно, если бы был способ сделать это через пакет page_mod.

Ответы [ 2 ]

6 голосов
/ 04 декабря 2011

Начиная с SDK 1.14 для дополнений, существует экспериментальная (API может измениться) поддержка для этого в модуле page-mod :

var pageMod = require("sdk/page-mod").PageMod({
  include: "*",
  contentStyleFile: require("sdk/self").data.url("my-style.css")
});

См. Изменение основанных на веб-страницахпо URL для подробного руководства по использованию page-mod.

На вики-странице Addon SDK есть страница *1011*, в которой обсуждаются проблемы с текущей реализацией, хотя она выглядит несколько устаревшей.

Под капотом используется nsIDOMWindowUtils .loadSheet (), чтобы добавить таблицу стилей, не касаясь DOM страницы.(Этот API был добавлен в Firefox 18, см. ошибка 737003 . До этого вам приходилось использовать nsIStyleSheetService , который был похож, но не специфичен для табуляции.)


До этого вы могли использовать скрипт контента для мода страницы, чтобы вставить ссылку или элемент стиля ( пример ).[править] Благодаря комментарию lwburk, вот более подробное подробное описание в Greasemonkey Hacks: Советы и инструменты для повторного смешивания в Интернете с Firefox. Марк Пилигрим: раздел «Изменение стиля страницы» .

1 голос
/ 30 марта 2013

Чтобы вставить CSS из main.js, теперь можно использовать "page-mod":

var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");

pageMod.PageMod({
  include: "*.org",
  contentStyleFile: data.url("my-page-mod.css")
});
...