Как заставить сценарий Механика Firefox использовать локальную каскадную таблицу стилей?

Что правильный синтаксис состоит в том, чтобы связать с файлом CSS в том же каталоге как Механик JavaScript? Я попробовал следующее, но это не работает:

var cssNode = document.createElement('link');
cssNode.type = 'text/css';
cssNode.rel = 'stylesheet';
cssNode.href = 'example.css';
cssNode.media = 'screen';
cssNode.title = 'dynamicLoadedSheet';
document.getElementsByTagName("head")[0].appendChild(cssNode);

Если бы я могу заставить это работать, это было бы намного легче, чем монтирование в корпус изменений CSS в JavaScript.

6
задан 06.01.2015, 15:24

2 ответа

Попробуйте это!

function addStyleSheet(style){
  var getHead = document.getElementsByTagName("HEAD")[0];
  var cssNode = window.document.c­reateElement( 'style' );
  var elementStyle= getHead.appendChild(cssNode)
  elementStyle.innerHTML = style;
  return elementStyle;
}


addStyleSheet('@import "example.css";'); 

Примечание: example.css должен жить в том же каталоге как Ваш пользовательский сценарий для этого примера для работы.

Ссылка-> DiveIntoGreaseMonkey

1
ответ дан 07.12.2019, 15:30

Необходимо передать таблицу стилей функции addStyleSheet, или она не будет работать.

function addStyleSheet(style){
  var getHead = document.getElementsByTagName("HEAD")[0];
  var cssNode = window.document.createElement( 'style' );
  var elementStyle= getHead.appendChild(cssNode);
  elementStyle.innerHTML = style;
  return elementStyle;
}

addStyleSheet('@import "http://wherever.com/style.css";');

Для использования локального файла измените последнюю строку на:

addStyleSheet('@import "style.css";');

Это загрузило бы style.css в том же каталоге как сценарий.

0
ответ дан 07.12.2019, 15:30

Теги

Похожие вопросы