是否可以在HTML中的现有框架下面的html中打开一个新框架?

时间:2010-04-07 11:38:27

标签: javascript html flex

我有一个html main.html ----- main.html ----------------     

    <title>FlexTrail</title>
    <script  src="main.js"></script>
    <frameset rows='200,200'>
        <frame id='one'  src="file:///C:/Documents%20and%20Settings/demo/Desktop/FlexTrail/project1/bin-debug/project1.html" frameborder='0' />
        <frame id='two'   src="" frameborder='0' /> 

    </frameset>

</head>
<body >

</body>

这里第一帧包含由Flex Builder 3生成的html,并在按钮上单击该flex项目,我使用外部接口调用main.js中的函数func2()。

---- main.js -----------------

var flag2 = 0; function func2() {     FLAG2 = 1;     。parent.frames [ '一个']位置= “文件:/// C:/Documents%20and%20Settings/demo/Desktop/FlexTrail/project1/bin-debug/project1.html”;     。parent.frames [ '2']位置= “文件:/// C:/Documents%20and%20Settings/demo/Desktop/FlexTrail/project2/bin-debug/project2.html”;     }

我希望另一个文件在第一个窗口的同一个窗口中打开。但是这里的问题是当我在IE8中运行时,另一个框架在另一个窗口中打开但在Firefox中我没有得到任何用途。

注意: - 两个浏览器都启用了Javascript,弹出窗口未被阻止

Plz告诉我哪里错了

提前致谢

Prashant Dubey

4 个答案:

答案 0 :(得分:2)

你的框架集是错误的。框架集不是页面,因此它没有正文:

<html>
  <head>
    <title>FlexTrail</title>
    <script src="main.js"></script>
  </head>
  <frameset rows='200,200'>
    <frame id="one" src="file:///C:/Documents%20and%20Settings/demo/Desktop/FlexTrail/project1/bin-debug/project1.html" frameborder="0" />
    <frame id="two" src="" frameborder="0" />   
  </frameset>
</html>

答案 1 :(得分:2)

好的,找到修复。需要将NAME标记添加到Frames以及ID标记。还需要其他人已经回答的格式正确的框架集标签,但没有NAME标签它仍然无法正常工作。

编辑(再次):另外,注意到您对多个文件和单个脚本的其他任务。我刚刚将脚本内联转储到下面的示例中,但您也可以将其作为.js文件。而是将其加载到所有html文件,您可以在加载到帧中的辅助文件中使用parent.function()样式js调用。再次,取决于那里有多少代码以及你想要做什么等。里程可能会有所不同。 =)(你会注意到我不需要在我的1.html文件中添加脚本。)

见下文......

主要HTML:

<HTML>
<HEAD>
<TITLE> Title Goes here </TITLE>
<script type="text/javascript">
var flag2=0; 
function func2() 
{ 
flag2=1; 
parent.frames['one'].location="1.html"; 
parent.frames['two'].location="3.html";
}
</script></HEAD>
<FRAMESET rows="115,*">
            <FRAME SRC="1.html" ID="one" name="one">

            <FRAME SRC="2.html" ID="two" name="two">

</FRAMESET>

</HTML>

然后,1.html:

<HTML>
<HEAD>
<TITLE> Cow goes Moo </TITLE>
</HEAD>
<body>
 One.html 
    <input onclick="parent.func2();" id="Button1" type="button" value="button" />
</body>

</HTML>

2.html和3.html可以是真的,无所谓。

此设置的问题是IE在javascript中查找 ID 标记,但FireFox正在寻找框架的 NAME 属性。以上页面适用于IE,FF和Chrome。

答案 2 :(得分:1)

框架用于细分网页,就像设计工具中的切片一样。它们不能相互重叠。

也许您可以使用iframes而不是使用框架集来实现您的目标。有关演示,请参阅this site。 但话说回来,如果浏览器不支持重叠的iframe,我也不会感到惊讶。

答案 3 :(得分:1)

以下是可能有帮助的iframe的示例

<强> main.htm中

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

    <script type="text/javascript">
    function loadTwo()
    {
    document.getElementById('two').src = 'two.htm'
    document.getElementById('two').style.display='block';
    }

    function loadThree()
    {
    document.getElementById('two').src = 'three.htm'
    document.getElementById('two').style.display='block';
    }
    </script>

    <title>Untitled Page</title>
</head>
<body>
    <iframe id="one" src="One.htm"></iframe>
    <iframe id="two" style="display: none" src="Two.htm"></iframe>
</body>
</html>

<强> One.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
<script language="javascript" type="text/javascript">
// <!CDATA[

function load2_onclick() {
parent.loadTwo()
}

function load3_onclick() {
parent.loadThree()
}

// ]]>
</script>
</head>
<body bgcolor="#ff0000">
    <input id="load2" type="button" value="Load 2" onclick="return load2_onclick()" />
    <input id="load3" type="button" value="Load 3" onclick="return load3_onclick()" />
</body>
</html>

<强> Two.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Untitled Page</title>
</head>
<body  bgcolor="#00ff00">

</body>
</html>

<强> Three.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Untitled Page</title>
</head>
<body style="background-color: #0000ff">
</body>
</html>