Frame id not recognized by javascript in firefox 8.0
I have a frameset that includes a frame with id="main" When I click a link that invokes javascript referencing top.main it comes up as undefined. This code runs perfectly well in IE, in Chrome and on Android Tablets.
I guess I will have to tell my users to use one of those browsers instead of Firefox.
The code in file tophelp.htm is:
<frameset cols="162px,*"> <frame noresize="noresize" style= "border-right-width:thick; border-right-color:Maroon;" id="contents" src="navhelp.htm" /> <frameset rows="30px,*"> <frame frameborder=0 id="mainhd" marginheight="3" marginwidth="8" src= "Helphead.htm" /> <frame frameborder=0 id="main" src= "Helpmain.htm" /> </frameset> </frameset>
A JS function in this page has code:
top.main.location.href = "HelpOverview.htm"
This code generates an error: top.main is not defined.
由cor-el于
被采纳的解决方案
Use name instead of id in the frame and use window.top instead of top.
You probably need to include the protocol as well.
window.top.main.location.href = "http://HelpOverview.htm";
<frameset cols="162px,*"> <frame noresize="noresize" style= "border-right-width:thick; border-right-color:Maroon;" name="contents" src="navhelp.htm" /> <frameset rows="30px,*"> <frame frameborder=0 name="mainhd" marginheight="3" marginwidth="8" src= "Helphead.htm" /> <frame frameborder=0 name="main" src= "Helpmain.htm" /> </frameset> </frameset>
http://forums.mozillazine.org/viewtopic.php?f=25&t=2581145
定位到答案原位置 👍 0所有回复 (4)
Try posting at the Web Development / Standards Evangelism forum at MozillaZine. The helpers over there are more knowledgeable about web page development issues with Firefox.
http://forums.mozillazine.org/viewforum.php?f=25
You'll need to register and login to be able to post in that forum.
选择的解决方案
Use name instead of id in the frame and use window.top instead of top.
You probably need to include the protocol as well.
window.top.main.location.href = "http://HelpOverview.htm";
<frameset cols="162px,*"> <frame noresize="noresize" style= "border-right-width:thick; border-right-color:Maroon;" name="contents" src="navhelp.htm" /> <frameset rows="30px,*"> <frame frameborder=0 name="mainhd" marginheight="3" marginwidth="8" src= "Helphead.htm" /> <frame frameborder=0 name="main" src= "Helpmain.htm" /> </frameset> </frameset>
由cor-el于
Changing from 'id' to 'name' did the trick. Thanks.
You're welcome.