在iframe中打开本地页面

时间:2014-06-22 06:08:00

标签: javascript html iframe

我有两个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()" />

3 个答案:

答案 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的所有帮助。非常感谢。