关于JS中onload方法

在index.html的onload事件内调用了以下方法:
function openall(){
window.open(‘1.html','window','width=300,height=300');
window.open(‘2.html','win','width=300,height=300');
window.open(‘3.html','window1','width=300,height=300');
window.open(‘4.html','win','width=300,height=300');
}
运行之后只弹出来‘1.html',‘3.html',‘4.html',三个页面,为什么第二个没有弹出来?还有个疑问就是第二个参数是什么意思或者说第二个参数什么时候应该传什么样的值?

阅读 3k
2 个回答

语法
window.open(URL,name,features,replace)
参数 描述
URL 一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
name 一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 a 和 form 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么open( 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。
features 一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。
replace 一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值: true - URL 替换浏览历史中的当前条目。 false - URL 在浏览历史中创建新的条目。

简单来说,第二个参数可以理解为窗口的唯一标志id,所以你的第四行代码和第二行代码操作的是同一个窗口。也就是说这个窗口一开始是2.html,执行到第四句时这个窗口url地址变成了4.html,所以最后你就没看到2.html了。

一共有四个参数。
第一个 要加载的URL
第二个 窗口目标
第三个 一个特性字符串 也就是打开页面的宽高等等
第四个 一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值

对于第二个参数 表示是已有窗口或者框架的名称,那么就会在该名称的窗口或者框架下加载第一个参数指定的URL

第四个覆盖了第二个

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题