Ошибка Chrome за Исключением NO_MODIFICATION_ALLOWED_ERR DOM 7

Я имею ниже кода для вставки стиля в 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

У кого-либо есть фиксация?Спасибо

11
задан HP. 26 March 2010 в 07:39
поделиться

3 ответа

Я думаю, это потому, что вы используете innerHTML , когда везде вы используете синтаксис XML. Попробуйте:

bmstyle.nodeValue = styleStr;

Предложение 2:

Это также может быть связано с тем, что вы пытаетесь установить innerHTML элемента, которого еще нет в HTML DOM. Если это так, мое первое предложение все еще должно остаться в силе, или вы можете пойти следующим образом:

document.body.appendChild(bmstyle);
bmstyle.innerHTML = styleStr;

Я не уверен, понадобится ли вам промежуточная строка, чтобы вернуть элемент, или если стиль bmstyle все еще будет указывать на него.

9
ответ дан 3 December 2019 в 07:11
поделиться

Это могло быть из-за того, что недопустимо помещать элементы