Что правильный синтаксис состоит в том, чтобы связать с файлом 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.
Попробуйте это!
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 "example.css";');
Примечание: example.css должен жить в том же каталоге как Ваш пользовательский сценарий для этого примера для работы.
Ссылка-> DiveIntoGreaseMonkey
Необходимо передать таблицу стилей функции 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 в том же каталоге как сценарий.