1.全局对象window
对于去哪聚对象window,一般在定义变量和方法时都会省略不写。在看书的中,看到定义全局变量和直接在window上定义属相还是有一点差别的。其主要差别就是对于delete操作符的使用,对于全局变量不会生效,直接返回false,对于widow对象上,直接返回true,即正确删除了window对象的属性。这是因为用var定义的变量会为window对象的configurable属性设置为false,即不能通过delete删除了。
这个delete操作符在对new Set()对象创建实例中也有用到。
var color = "red"; window.age = 29; // 使用delete操作符 delete window.color; // false delete window.age; // true,正确删除 console.log(widnow.age); // "red" console.log(window.age); // undefined
2.iframe和frame的差异
看到书中用的是frameSet(框架集)进行在页面中显示其它的网页内容。而这个标签在H5中已经不再推荐,取而代之的是iframe标签。基于以下列举出来的两者的差异,frame只是一种用在全页面的控件,局限性很大。而iframe可以内嵌在页面中的,是一个局部控件,灵活性很强。
针对以下差异性,我会抛弃frameSet和frame,而去使用iframe。
(有一种情形,个人认为使用frameSet还是很方便的,比如书中左边是目录,右边是正文,在拖动正文时,左边的目录又不想跟着移动,这是一个很不错的布局吧)
frameSet和frame iframe frame不能脱离frameSet单独使用,而且不能放在body标签中。 iframe一般单独使用,不会再嵌在frameSet标签中,这样的话必须使用在body中,单独使用可以随便布局。 frame的高度只能通过frameSet控制 iframe可以通过height和width属性自己控制,不能通过frameSet控制 frame 不能放在表格中 iframe 可以放到表格里面使用,更加灵活
3.浏览器的窗口的innerWidth、innerHeight和outerWidth、outerHeight
之前总是分不清这两个属性的区别,今天看了书和自己在浏览器上跑了一下,特此记录一下。
innerWidth = width + padding
innerHeight = height + padding
outerWidth = width + padding + border
outerHeight = height + padding + border
注:在jQuery中由于outerHeight()方法中可以动态的传递布尔参数,所以在操作outerWidth和outerHeight时,还可以对margin进行选择性操作。
4.浏览器打开窗口open()方法
首先说一下为什么总结这个方法,这是因为在上周业务代码中使用到了这个方法,既然在业务中用到了,我认为就有必要对自己扩展这一部分了。
这个方法有四个参数,分别是url地址,目标名称,配置参数的字符串(这个字符串中不允许出现布尔值,键值对是以"="连接)和新页面是否取代浏览器历史记录中当前加载页面的布尔值。
var newWindow = window.open("https://www.baodu.com", "_blank", "height=200,top=30", true); // 返回一个新对象 // 关闭这个新建的窗口使用close()方法 newWindow.close(); // 额外看到的一个不常用的属性closed,判断新打开的窗口是否关闭了,返回一个布尔值 console.log(newWindow.closed); // true
网友评论