Я имею ниже кода для вставки стиля в DOM (существует вариант использования для введения стиля в DOM, поэтому не спрашивайте, почему или говорят для загрузки CSS в .css файле).
<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>
Если я работаю в Firefox, он хорошо работает. Но я получил эту ошибку в Google Chrome:
Line bmstyle.innerHTML = styleStr;
Uncaught Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7
У кого-либо есть фиксация?Спасибо
Я думаю, это потому, что вы используете innerHTML
, когда везде вы используете синтаксис XML. Попробуйте:
bmstyle.nodeValue = styleStr;
Предложение 2:
Это также может быть связано с тем, что вы пытаетесь установить innerHTML элемента, которого еще нет в HTML DOM. Если это так, мое первое предложение все еще должно остаться в силе, или вы можете пойти следующим образом:
document.body.appendChild(bmstyle);
bmstyle.innerHTML = styleStr;
Я не уверен, понадобится ли вам промежуточная строка, чтобы вернуть элемент, или если стиль bmstyle все еще будет указывать на него.
Это могло быть из-за того, что недопустимо помещать элементы