InnerHTML 不包含 "frame" 标记



我有一个DOM元素,里面有一个带有标签"frame"的节点。 但是当我做innerHTML时,"框架"标签消失了。为什么?

例:

我有这个字符串:

<div><p>Text</p><frame></frame></div>

如果我想把这个字符串作为一个元素的 HTML,"frame"标签就会消失:

var div = document.createElement('div');
div.innerHTML = str.trim();

结果:

<div><p>Text</p></div>

我该如何解决这个问题?

您不能在标签中使用<body><frame>
为此,请编写<frameset>而不是<body>,并在<frameset></frameset>中使用<frame>
并且,在<body>标签(或 DOM(中,您可以使用<iframe>.

试试这个

var container = document.createElement('div');
var div = document.createElement('div');
var p=document.createElement('p');
p.innerHTML="Text";
var frame=document.createElement('frame');
div.appendChild(p);
div.appendChild(frame);
container.appendChild(div);
alert(container.innerHTML);
document.getElementById("mainContainer").appendChild(container);
alert(document.getElementById("mainContainer").innerHTML);
<div id="mainContainer"></div>

最新更新