我已经继承了一些Javascript,这个JS曾经有效,但由于某种原因它不再有效。
我有以下脚本,请记住我已将其删除并仅列出了有问题的部分:
function top_frame() {
top_frame = top.frames[0].document;
top_frame.write('<HTML><BODY topmargin=0 leftmargin=0 marginheight=0 marginwidth=0><IMG SRC="'+image_url+'/options_top.gif" HEIGHT=25 WIDTH=300></BODY></HTML>')
// top_frame.write('<HTML><BODY BGCOLOR="#339999"><IMG SRC="images/global/options_top.gif" WIDTH=300 HEIGHT=25 ALT="Product options editor" BORDER="0"></BODY></HTML>')
top_frame.close();
}
function bottom_frame() {
bottom_frame = top.frames[2].document;
bottom_frame.write('<HTML><BODY topmargin=0 leftmargin=0 marginheight=0 marginwidth=0><A HREF="javascript:top.update_options()"><IMG SRC="'+image_url+'/options_end.gif" WIDTH=300 HEIGHT=30 ALT="Update and close" BORDER="0"></A></BODY></HTML>')
bottom_frame.close();
}
</SCRIPT>
<frameset rows="26,*,31" frameborder="NO" border="0" framespacing="0">
<frame src="javascript:top.top_frame()"
scrolling="NO" marginwidth="0" marginheight="0" frameborder="NO"
NAME="options_top">
<frame src="javascript:top.show_start()"
marginwidth="0" marginheight="0" frameborder="NO" scrolling="auto"
NAME="options_main">
<frame src="javascript:top.bottom_frame()"
scrolling="NO" marginwidth="0" marginheight="0" frameborder="NO"
NAME="options_bottom">
</frameset>
</HTML>
我正在页面底部的HTML中调用函数bottom_frame()
,show_start()
和top_frame()
。但是,我在错误选项卡中看到以下消息:
TypeError: top.bottom_frame is not a function
我在每个函数调用中都看到了这一点。任何人都可以建议问题在这里吗?
答案 0 :(得分:3)
不要对用于函数名称的变量使用相同的名称
例如,如果您将function a
定义为
function a(){a =1};
并调用此a()
,它将输出1;
但下次会出错
未捕获的TypeError:a不是函数
因为当它被执行时,它将a
重新定义为non-function
类型值,即1。
答案 1 :(得分:1)
bottom_frame()
。您是全局定义的,因此请使用top
进行调用。所以而不是:
top.bottom_frame()
只需致电
bottom_frame()