实际上,这个例子并不难,仅仅是window.open()的一个较为特殊的用法,其过程是这样:首先打开一个窗口,然后向这个窗口中写入一段代码(即参数code)。下面就对open()方法进行讲解。
首先看看用法:newwin=window.open('url','name','features');
基中newwin是一个window对象的变量,代表新的窗口,我们可以用newwin来调用这个窗口以进行一定的操作,如newwin.close()(关闭窗口);url是打开的文件的URL;name是窗口的名字;features是一个字符串,表示新窗口的属性,可有多个选项,用逗号分开,如:window.open('url','name','width=400,height=300')。下面列出在IE4以上版本(包括IE4)中新窗口的属性(即上面的参数中的fetures):
属性 取值/单位 表示意义
toolbar yes/no/1/0 工具栏
location yes/no/1/0 地址栏
font-size 字体大小,语法同CSS,如:font-size:12px
font-weight 定义多种字体
font-style 使用多种字体属性
edgeStyle raised/sunken 窗口边界样式
borderSize thick/thin 窗口四周边框的尺寸
helpIcon yes/no/1/0 在标题栏中是否显示帮助图标
minimize yes/no/1/0 在标题栏中是否显示小图标
maxnimize yes/no/1/0 在标题栏中是否显示大图标
systemMenu yes/no/1/0 在边框图标中系统菜单是否有效
directories yes/no/1/0 目录图标
status yes/no/1/0 窗口底部状态行
menubar yes/no/1/0 菜单条
scrollbars yes/no/1/0 允许水平和垂直滚动
resizealbe yes/no/1/0 是否可以改变窗口大小
width px 窗口宽度
height px 窗口高度
top px 相对于桌面的顶部位置
left px 相对于窗口左边位置
center yes/no/1/0 相对于桌面的中心位置
以上呢,对window.open()做了较为详尽的解释,下面讲一个较为特殊的用法,也就是本例所使用的了。我们再看一看runCode()函数的仅有的两行代码:
var newwin=window.open('','','');
newwin.document.writeln(code);
第一句,上面已经做了讲述,就是打开一个窗口。不过这里没有任何参数,如果没有接下来的那句,它将打开一个与其父窗口一样的新窗口,那么我们来看看接下来的一句是什么意思呢?newwin是新打开窗口的变量,这里面就是说一定是对新打开窗口的某种操作了。document.writeln()是一个输出语句,code是参数,也就是要运行的代码了。那么,newwin.document.writeln(code)的意思就是向新打开的窗口中写入要运行的代码,换句话说,code代码也就在新打开的窗口中显示其效果了,从而实行了“运行代码”的功能。
这一节呢,就这样结束了,是不是很简单呢?