Я пишу расширение для Firefox и использую их дополнительный SDK; но я не могу понять, как внедрить локальный файл CSS из папки данных на веб-страницу. Было бы здорово, если бы был способ сделать это через пакет page_mod
.
Вставьте файл CSS на веб-страницу через расширение Firefox.
Ответы (2)
Начиная с Add-on 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 есть страница, на которой обсуждаются проблемы с текущей реализацией, хотя кажется немного устаревшим.
Под капотом используется nsIDOMWindowUtils.loadSheet( ), чтобы добавить таблицу стилей, не касаясь DOM страницы. (Этот API был добавлен в Firefox 18, см. ошибка 737003. До этого у вас использовать nsIStyleSheetService, который был похож, но не специфичен для вкладок.)
До этого вы могли использовать скрипт содержимого мода страницы для вставки ссылки или элемента стиля (пример). [edit] благодаря комментарию lwburk, вот более детальное описание в Greasemonkey Hacks: Советы и инструменты для ремиксации в Интернете Firefox by Mark Pilgrim:« Изменить страницу Раздел "Стиль".
require('chrome')
), хотя это сложная тема, которая сделает недействительными гарантии прямой совместимости, которые обычно предоставляет дополнительный SDK.
- person Nickolay; 04.12.2011
Теперь для вставки 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")
});