日期:2014-05-16  浏览次数:20307 次

请教一个JAVASCRIPT问题
这里面有没很熟悉javacript的,请教一个问题:
我在用
<frameset>
<frame src="aa.html" name="aa"/>
<frame src="bb.html" name="bb"/>
</frameset>
这个html元素,我在BB页面用javascript控制AA页面,语句为:

self.parent.aa.style.display =''none";

结果IE报错为:self.parent.aa为空或不是对象。

真不解啊,我在网上查了很多网友也是这样做的,为什么我做的就不行,请高手赐教!


------解决方案--------------------
直接写在全局的js,会在页面加载完成前执行,你把这句写到一个事件函数中执行就可以了
------解决方案--------------------
你把JS放在哪了。。。要注意JS的加载顺序。。。
------解决方案--------------------
把<frameset>
<frame src="aa.html" name="aa"/>
<frame src="bb.html" name="bb"/>
</frameset>
改成
<frameset>
<frame src="aa.html" id="aa"/>
<frame src="bb.html" id="bb"/>
</frameset>
------解决方案--------------------
LZ的问题是self.parent.aa.style.display中的aa取的是id而不是name
------解决方案--------------------
LZ测试过以下的代码没?
HTML code
<frameset>
<frame src="aa.html" id="aa"/>
<frame src="bb.html" id="bb"/>
</frameset>

------解决方案--------------------
self.parent.frames['aa'].style.display='none'试试这个呢?。。
------解决方案--------------------
这样看看,下面例子...

主页面:
HTML code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<frameset rows="116,*" cols="*" framespacing="0" frameborder="NO" border="1">
  <frame src="ajax007_01.htm" name="topFrame" scrolling="NO" noresize>
  <frame src="ajax007_02.htm" name="mainFrame">
</frameset>
<noframes><body>
</body></noframes>
</html>

------解决方案--------------------
setTimeout(function(){self.parent.frames['aa'].style.display='none';},500);
这样试试
------解决方案--------------------
探讨

To shenzhenNBA,我看了你的回复,但不是我想要的效果,我要效果是:在B页面中的一个按钮,当点击它时,A页面隐藏,再点击时显示A页面,而A、B页面之间的大小是可以像二个窗体间互相拖动调整大小窗口。

------解决方案--------------------
修改如下:要实现拖动功能你再自己实现,里面不断改变值,并调用修改窗口大小的函数即可;

主页面:
HTML code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<frameset id="frames" name="frames" rows="30%,69%" cols="*" framespacing="2" frameborder="2" border="2">
  <frame src="ajax007_01.htm" name="topFrame" scrolling="NO" noresize>
  <frame src="ajax007_02.htm" name="mainFrame">
</frameset>
<noframes><body>
</body></noframes>
</html>

------解决方案--------------------