JavaScript innerHTML插入<style>元素
2016/03/12 标签:
javascript
通过innerHTML写入<style>元素没有得到浏览器很好的支持,IE9、Opear 9、Chrome高版本和Firefox高版本支持以直观的方式通过innerHTML插入<style>元素,例如:
div.innerHTML = "<style type="text/css">body {background-color: red;}</style>";
在IE6和IE7中会忽略这个<style>元素。在IE中,<style>也是一个作用域外元素,因此必须想下面这样给它前置一个作用域元素:
div.innerHTML = "_<style type="text/css">body {background-color: red;}</style>" div.removeChild(div.firstChild);
低版本的Safari和Chrome则会因为没有将这个<style>元素添加到<head>元素而继续忽略它。如果想在所有浏览器中成功插入<style>元素,就必须想下面这样:
//针对低版本IE div.innerHTML = "_<style type="text/css">body{background-color: red;}</style>" div.removeChild(div.firstChild); //针对低版本Safari和Chrome document.getElementsByTagName("head")[0].appendChild(div.firstChild);