如何使用Javascript创建<Style>标记?我正在寻找一种插入<style>标记到带有JavaScript的HTML页面中。到目前为止我找到的最好的方法是:var divNode = document.createElement("div");divNode.innerHTML = "<br><style>h1 { background: red; }</style>";document.body.appendChild(divNode);这在Firefox、Opera和InternetExplorer中都适用,但在GoogleChrome中就不行了。而且它有点丑陋<br>在IE的前面。有谁知道如何创建一个<style>标记更好和Chrome一起工作吗?或者也许这是我应该避免的不标准的事情。三种正常工作的浏览器都很不错,还有谁在使用Chrome呢?
3 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
styleheadbody.
var css = 'h1 { background: red; }',
head = document.head || document.getElementsByTagName('head')[0],
style = document.createElement('style');head.appendChild(style);style.type = 'text/css';if (style.styleSheet){
// This is required for IE8 and below.
style.styleSheet.cssText = css;} else {
style.appendChild(document.createTextNode(css));}
富国沪深
TA贡献1790条经验 获得超9个赞
createStyleSheet()addRule()
if(typeof document.createStyleSheet === 'undefined') {
document.createStyleSheet = (function() {
function createStyleSheet(href) {
if(typeof href !== 'undefined') {
var element = document.createElement('link');
element.type = 'text/css';
element.rel = 'stylesheet';
element.href = href;
}
else {
var element = document.createElement('style');
element.type = 'text/css';
}
document.getElementsByTagName('head')[0].appendChild(element);
var sheet = document.styleSheets[document.styleSheets.length - 1];
if(typeof sheet.addRule === 'undefined')
sheet.addRule = addRule;
if(typeof sheet.removeRule === 'undefined')
sheet.removeRule = sheet.deleteRule;
return sheet;
}
function addRule(selectorText, cssText, index) {
if(typeof index === 'undefined')
index = this.cssRules.length;
this.insertRule(selectorText + ' {' + cssText + '}', index);
}
return createStyleSheet;
})();}document.createStyleSheet('foo.css');var sheet = document.createStyleSheet();sheet.addRule('h1', 'background: red;');添加回答
举报
0/150
提交
取消
