我有一个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
答案 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>