I have below code to insert a style into DOM (there is a use case for injecting style into DOM so please don't ask why or say to load the css in .css file).
<script type="text/javascript">
window.onload = function()
{
var bmstyle = document.createElement('style');
bmstyle.setAttribute('type', 'text/css');
var styleStr = "#test-div {background:#FFF;border:2px solid #315300;";
bmstyle.innerHTML = styleStr;
document.body.appendChild(bmstyle);
}
</script>
If I run in Firefox, it works fine. But I got this error in Google Chrome:
Line bmstyle.innerHTML = styleStr;
Uncaught Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7
Does anyone have a fix? Thanks
I think it's because you are using innerHTML
when everywhere else you are using XML syntax. Try:
bmstyle.nodeValue = styleStr;
Suggestion 2:
It might also be because you are trying to set the innerHTML of a an element not yet in the HTML DOM. If that's the case, my first suggestion should still hold up, or you can go with:
document.body.appendChild(bmstyle);
bmstyle.innerHTML = styleStr;
I'm not sure if you'd need a line inbetween to reclaim the element or if the bmstyle would still point to it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With