它在Firefox和Chrome中正常工作,但在IE8中不起作用。这是html结构:
<!DOCTYPE html> <html> <head> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $(function() { // this does not work in IE $('<style type="text/css"></style>').text('body {margin: 0;}').appendTo('head'); }); </script> </head> <body> </body> </html>
在IE中可以做什么?
解决方法
这在IE7中为我工作:
$('<style type="text/css">body {margin: 0;}</style>').appendTo($('head'));
另一种可能更容易阅读的语法:
$('head').append('<style type="text/css">body {margin:0;}</style>');
但是,调用.text(val)或.html(val)来设置样式标签的内容将导致抛出异常,因为它们设置了只读的innerHTML DOM属性。
这是innerHTML属性的IE’s documentation:
The property is read/write for all objects except the following,for which it is read-only: COL,COLGROUP,FRAMESET,HEAD,HTML,STYLE,TABLE,TBODY,TFOOT,THEAD,TITLE,TR.