IE does not allow writing to the innerHTML property of style or head elements. So how do you copy a style element from the head of one document to another?
A:
If you want to copy some elements, than try using Node.cloneNode(true) together with Node.appendChild
Rafael
2009-05-17 22:12:48
cloneNode does not work from a different document (say an iframe). You would need to use document.importNode, which is not supported by IE.
lambacck
2009-05-17 22:17:56
A:
function copy_style(src_style_tag) {
var tmp_div = document.createElement('div');
var innerHTML = src_style_tag.innerHTML;
tmp_div.innerHTML = '<p>x</p><style type="text/css">' + innerHTML + '</style>';
return tmp_div.getElementsByTagName('style')[0];
}
The magic is that you need the <p> tag in the innerHTML of the tmp_div. Without it, IE does not accept the style element.
lambacck
2009-05-17 22:16:21