Supongo que desea insertar una style
etiqueta en lugar de una link
etiqueta (haciendo referencia a un CSS externo), así que eso es lo que hace el siguiente ejemplo:
<html>
<head>
<title>Example Page</title>
</head>
<body>
<span>
This is styled dynamically via JavaScript.
</span>
</body>
<script type="text/javascript">
var styleNode = document.createElement('style');
styleNode.type = "text/css";
// browser detection (based on prototype.js)
if(!!(window.attachEvent && !window.opera)) {
styleNode.styleSheet.cssText = 'span { color: rgb(255, 0, 0); }';
} else {
var styleText = document.createTextNode('span { color: rgb(255, 0, 0); } ');
styleNode.appendChild(styleText);
}
document.getElementsByTagName('head')[0].appendChild(styleNode);
</script>
</html>
Además, noté en su pregunta que está utilizando innerHTML
. Esta es en realidad una forma no estándar de insertar datos en una página. La mejor práctica es crear un nodo de texto y agregarlo a otro nodo de elemento.
Con respecto a su pregunta final, escuchará a algunas personas decir que su trabajo debería funcionar en todos los navegadores. Todo depende de tu audiencia. Si nadie en su audiencia está usando Chrome, entonces no se preocupe; sin embargo, si está buscando llegar a la mayor audiencia posible, entonces es mejor admitir todos los principales navegadores de grado A
document.head
es compatible con todos los principales navegadores.