1

IEブラウザを使用してouterHTMLで遭遇する問題

私が言うなら:

txt="Update Complete!";
msg = sub.appendChild(d.createElement("p"));
msg.outerHTML = txt;

それは正常に動作します:

しかし、私が言うなら

txt="1 Error:<ul><li>Some Error</li></ul>";
msg = sub.appendChild(d.createElement("p"));
msg.outerHTML = txt;

次のエラーが表示されます。

Message: Unknown runtime error
Line: 389
Char: 4
Code: 0
URI: http://10.1.1.16/schedule_calendar/js/validate.js

Line:389 は "msg.outerHTML = txt;" に関するものです。

誰でもこれで私を助けることができます..前もって感謝します

4

2 に答える 2

1

理由はわかりませんが、ほとんどの場合、outerHTML の変更は許可されていません。これは、要素の outerHTML を変更しているときに、実際に現在の要素を置き換えているためだと推測しています。

IMO、outerHTML を変更するよりも要素を置き換える方が安全です。

あなたの場合、おそらくこれで十分でしょう:

ここでの更新:

<html>
<head><title>Test</title></head>
<body>
<div>
    some content...
    <div id="sub"></div>
</div>
<script type="text/javascript">
window.onload = function(){
    var sub = document.getElementById('sub');
    var txt="<p>Update Complete!</p>";
    sub.innerHTML = txt;

    alert('test 1');

    txt="1 Error:<ul><li>Some Error</li></ul>";
    sub.innerHTML = txt;
}
</script>
</body>
</html>
于 2010-01-11T08:26:33.537 に答える
0

あなたのコードは何を達成しようとしていますか? どちらの場合も、次のことを行います。

  1. 新しいp要素を作成する
  2. p要素を追加しますsub(これは要素自体でもあると思います)
  3. 要素の を何らかのテキストにouterHTML設定します。p

あなたも同様に行うことができました:

  1. 目的のテキスト データで新しい textNode を作成する
  2. それを の子ノードに追加しますsub:

    sub.appendChild(document.createTextNode("Update Complete!"));

または、subとにかく空の場合は、次のようにします。

sub.innerHTML = "Update Complete!";
于 2010-01-11T09:07:34.570 に答える