3

我正在创建一个包含 iframe 的页面。我的目标是创建一个将添加到 iframe 内容头部的 javascript。

但我总是收到暗示 iframe.contentDocument 为空的错误。

主页面代码

<html>
<head>
<title>Sample "Hello, World" Application</title>
<script type="text/javascript" >
function sizeFrame() {
try{
    var ifrm = document.getElementById("CFrame");
    var bt = ifrm.contentDocument.createElement("base");
    bt.setAttribute("target", "_parent");
    ifrm.contentDocument.getElementsByTagName("head")[0].appendChild(bt);
}
catch (er)
{alert(er);}
}
</script>
</head>
<body>
<div id="sidecontainer">
<iframe id="SFrame" name="SearchFrame" frameborder ="0" width="500" height="100" scrolling="no" src="SearchBox.html"></iframe>
</div>
<div id="content">
<iframe id="CFrame" name="ContentFrame" frameborder="0" height="1000px" width="1000px" onload="sizeFrame()" scrolling="no" src="ContentFrame.html"></iframe>
</div>
</body>
</html>

Iframe ContentFrame.html 的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
    <div id="input">
    test
    </div>
</body>
</html>
4

2 回答 2

2

我建议你试试

ifrm.contentWindow.document.getElementById("id")
于 2012-12-04T16:51:02.080 回答
0

像在主窗口中一样,使用框架窗口名称来创建元素,如下所示

ContentFrame.document...

换句话说,访问窗口名称。

此外,您的 iframe 窗口没有任何 id 值等于“id”的元素。

于 2012-12-04T16:48:49.963 回答