JAVASCRIPT:IE:outerHTML

JAVASCRIPT:IE:outerHTML,javascript,html,internet-explorer,outerhtml,Javascript,Html,Internet Explorer,Outerhtml,使用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

使用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;
第389行属于“msg.outerHTML=txt


有人能帮我做这个吗。。提前感谢

出于某些原因,我不知道,在大多数情况下,不允许修改outerHTML。 我猜,这是因为在修改元素的outerHTML时,实际上是在替换当前元素

在国际海事组织看来,更换一个元素比修改其外部TML更安全

在您的情况下,也许这就足够了:

此处更新:

<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>

试验
一些内容。。。
window.onload=函数(){
var sub=document.getElementById('sub');
var txt=“更新完成!

”; sub.innerHTML=txt; 警报(“测试1”); txt=“1错误:
  • 某些错误
    • ”; sub.innerHTML=txt; }
由于我不知道的某些原因,在大多数情况下不允许修改outerHTML。 我猜,这是因为在修改元素的outerHTML时,实际上是在替换当前元素

在国际海事组织看来,更换一个元素比修改其外部TML更安全

在您的情况下,也许这就足够了:

此处更新:

<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>

试验
一些内容。。。
window.onload=函数(){
var sub=document.getElementById('sub');
var txt=“更新完成!

”; sub.innerHTML=txt; 警报(“测试1”); txt=“1错误:
  • 某些错误
    • ”; sub.innerHTML=txt; }
您的代码试图实现什么?在这两种情况下,您都会:

  • 创建一个新的
    p
    元素
  • p
    元素附加到
    sub
    (我假设它本身也是一个元素)
  • p
    元素的
    outerHTML
    设置为某个文本
  • 你也可以这样做:

  • 使用所需的文本数据创建新的textNode
  • 将其附加到
    的子节点:

    sub.appendChild(document.createTextNode(“更新完成!”)

  • 或者,如果
    sub
    仍然为空,只需执行以下操作:

    sub.innerHTML = "Update Complete!";
    

    您的代码试图实现什么?在这两种情况下,您都会:

  • 创建一个新的
    p
    元素
  • p
    元素附加到
    sub
    (我假设它本身也是一个元素)
  • p
    元素的
    outerHTML
    设置为某个文本
  • 你也可以这样做:

  • 使用所需的文本数据创建新的textNode
  • 将其附加到
    的子节点:

    sub.appendChild(document.createTextNode(“更新完成!”)

  • 或者,如果
    sub
    仍然为空,只需执行以下操作:

    sub.innerHTML = "Update Complete!";
    


    嗯,我不知道这是否确实是问题所在,但是'ul'不是'p'的有效子元素。我不确定您是否可以设置outerHTML。(您可以使用innerHTML,tho)。无论哪种方式,OutHTML都不是非常跨浏览器兼容的,所以我会考虑不使用它。IE.中不存在iNelHTML。它们具有内部HTML。但是它没有显示文本。它只将其存储在innerhtml=“some text”中。但是IE中确实存在不显示它的
    innerHTML
    ,尽管它仅在某些情况下是可写的(例如,不能为
    tbody
    元素写入,但可以为
    p
    元素写入)
    outerHTML
    是IE特有的,据我所知,它不适用于任何其他浏览器。你应该避免它。@Justin Johnson你能给我一个例子吗?也许我可以解决你的想法。我不知道这是否确实是问题所在,但“ul”不是“p”的有效子元素。我不确定你是否可以设置outerHTML。(您可以使用innerHTML,tho)。无论哪种方式,OutHTML都不是非常跨浏览器兼容的,所以我会考虑不使用它。IE.中不存在iNelHTML。它们具有内部HTML。但是它没有显示文本。它只将其存储在innerhtml=“some text”中。但是IE中确实存在不显示它的
    innerHTML
    ,尽管它仅在某些情况下是可写的(例如,不能为
    tbody
    元素写入,但可以为
    p
    元素写入)
    outerHTML
    是IE特有的,据我所知,它不适用于任何其他浏览器。你应该避免它。@Justin Johnson你能给我一个例子吗?也许我可以解决你的想法
    • 不是我出错时创建的元素。但是他们不会自动创建所述元素吗?消息:对象不支持此属性或方法行:5个字符:1个代码:0 URI:抱歉,但是localhost在这里不起作用,您能发布代码然后将链接发送给我吗,谢谢我知道。。你自己试试看。。使用IE浏览器。我只是指出了IE browserit在我这边的工作中发现的错误,IE6,IE7和IE8,可能是什么原因导致了这个错误,如果我们能看到你的代码就更好了
      • 不是我出错时创建的元素。但是他们不会自动创建所述元素吗?消息:对象不支持此属性或方法行:5个字符:1个代码:0 URI:抱歉,但是localhost在这里不起作用,您能发布代码然后将链接发送给我吗,谢谢我知道。。你自己试试看。。使用IE浏览器。我只是指出了IE browserit在我这方面的工作中发现的错误,IE6、IE7和IE8,可能是某些原因导致了错误,如果我们能看到您的代码就更好了。文本节点将html标记读取为文本。所以这并不能解决我的问题。我想要实现的是将一个html文本添加到一个p元素中。所以,只需使用
        sub.innerHTML
        then.text节点将html标记读取为文本。所以这并不能解决我的问题。我想要实现的是将一个html文本添加到一个p元素中,所以,只需使用
        sub.innerHTML