我有两个iframe,我需要在点击一个按钮(在我的topframe中)加载另一个本地页面(help_content.html)(进入我的底帧)。 topframe有一个带有3个按钮的表单(help_form.html)(2个工作),而bottomframe当前是一个blank.html,需要在点击按钮时加载help_screen.html。
来自help_screen.html的HTML
<iframe name="topframe" id="topframe" src="help_form.html"><p>Your browser cannot view iFrames</p></iframe>
<br/>
<iframe name="bottomframe" id="bottomframe" src="blank.html"><p>Your browser cannot view iFrames</p></iframe>
的Javascript
function openHelp() {
document.getElementById("bottomframe").src="help_screen.html";
}
来自help_form.html上的按钮的HTML
<input type="button" name="help1" value="Click for help" onclick="openHelp()" />
答案 0 :(得分:0)
在你的javascript中,
您已将src
设置为help_screen.html
你应该把它设置为help_content.html
编辑
help_screen.html必须包含以下代码:
<!DOCTYPE html>
<html>
<head>
<script>
function openHelp() {
var frame = document.getElementById("bottomframe");
frame.setAttribute("src", "help_content.html");
}
</script>
</head>
<body>
<iframe name="topframe" id="topframe" src="help_form.html">Your browser suckss...</iframe>
<iframe name="bottomframe" id="bottomframe" src="#">Your browser really suckss...</iframe>
</body>
</html>
您的help_form.html必须包含此按钮:
<input type="button" onclick="parent.window.openHelp()">
答案 1 :(得分:0)
您无需调用父级的window
字段,只需直接从中调用该函数,因为parent
已经是对window
的引用:
onclick="parent.openHelp();"
正如this question建议(引用):
...请参阅window.parent
返回对当前窗口或子帧的父级的引用。
如果窗口没有父窗口,则其父属性是引用 对自己。
在&lt; iframe&gt;,&lt; object&gt;或&lt; frame&gt;中加载窗口时, parent是嵌入窗口的元素的窗口。
如果该函数是在help_screen.html
上定义的。
但是,如果您的功能是在孩子身上定义的,您应该这样调用它(as this question suggests):
parent.document.getElementById("bottomFrame").contentWindow.openHelp();
或者:
parent.document.bottomFrame.contentWindow.openHelp();
答案 2 :(得分:0)
我使用function openHelp(document){ parent.document.getElementById('bottomframe').src="help_content.html";
}
让它工作了
虽然它不适用于Chrome,但我很高兴它能够正常运行。
非常感谢@Aditya和@arielnmz的所有帮助。非常感谢。