如何使用 javascript 在 IE8 中创建新框架?

How to create a new frame in IE8 using javascript?

我有一个 html 框架集 <frameset name="home" id="home" ...> 并且 我想使用 JS 为其添加一个新框架。所以我写了这段代码:

var newFrame = document.createElement("frame");
newFrame.id = "myNewFrame";
newFrame.name = "myNewFrame";
newFrame.src = "/myRelativeUrl.html";
var domFrameset = document.getElementById("home");
if (domFrameset) {
    domFrameset.appendChild(newFrame);
}

它在现代浏览器中按预期工作,但在 IE8 中不工作。它创建框架标记,但不执行请求。

经过一天的研究但没有任何回应,我确信这个问题没有解决方案。

但最后我想出了一个解决问题的方法:

使用 <frameset><frame> 时,您需要将行属性应用于框架集,以便在其中正确显示框架。 在设置新帧的SRC参数之前,您必须编辑此属性!

HTML:

<frameset name="home" rows="95,*">
  <frame name="frame1" src="/menu.html"/>
  <frame name="frame2" src="/main.html"/>
</frameset>

使用 JS 添加新框架(也适用于 IE8):

var newFrame = document.createElement("frame");
newFrame.id = "myNewFrame";
newFrame.name = "myNewFrame";
var domFrameset = document.getElementById("home");
if (domFrameset) {
    domFramset.rows = "95,*,100"; //<-- This is the key
    domFrameset.appendChild(newFrame);
    newFrame.src = "/myRelativeUrl.html";  //<-- Set SRC after appending    
}

希望这可以帮助遇到同样问题的人-