1.34. BOM浏览器对象
BOM(Browser Object Model),浏览器对象模型,提供了独立于内容与浏览器窗口进行交互的对象
作用:就是跟浏览器做一些交互效果,比如如何进行页面的后退,前进,刷新,浏览器的窗口发生变化,滚动条的滚动,以及获取客户的一些信息如:浏览器品牌版本,屏幕分辨率
浏览器的全部内容可以看成DOM,整个浏览器可以看成BOM。区别如下:
常见的BOM对象:window、location 、history、navigator、screen
- Window
BOM的核心对象是window,他表示一个浏览器的实例。在浏览器中,window对象有双重角色,即是浏览器窗口的一个接口,又是全局对象。 - location
location有很多属性,例如hash,host,herf,por,search等,除了hash之外,只要修改location的一个属性,就会导致页面重新加载新URL - navigator
navigator对象主要用来获取浏览器的属性,区分浏览器类型。 - screen
保存客户端能力信息,浏览器窗口外面的客户端显示器信息,比如像素宽度和像素高度。 - history
主要用来操作浏览器的URL的历史记录,可以通过参数向前,向后或者向指定URL跳转
1.35. iframe
利用AJAX从网页上下载HTML并粘贴到div中,这将带来不安全注入的问题。通过iframe页面嵌入可以很好地解决上述问题。
优点:
1.iframe能够把嵌入的网页原样展现出来;
2. iframe的页面和父页面(parent)是分开的,所以它意味着,这是一个独立的区域,不受 parent的CSS或者全局的JavaScript的影响。
3.模块分离,便于更改,如果有多个网页引用iframe,只需要修改iframe的内容,就可以实现调用的每一个页面内容的更改,方便快捷;
4.网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用iframe来嵌套,增加代码的可重用;
5.如果遇到加载缓慢的第三方内容如图标和广告,这些问题可以由iframe来解决;
6.重载页面时不需要重载整个页面,只需要重载页面中的一个框架页;
缺点:
3. iframes提供了一个简单的方式把一个网站的内容嵌入到另一个网站中。iframe的创建比其它包括scripts和css的 DOM 元素的创建慢了1-2个数量级。
4. 框架结构有时会让人感到迷惑,滚动条除了会挤占有限的页面空间外会使iframe布局混乱,还会分散访问者的注意力,影响用户体验;
5. iframe会阻塞主页面的onload事件