什么是BOM?

我可以使用BOM做什么?
BOM提供了一些用于访问窗口对象的方法。我们可以使用它来移动窗口位置,更改窗口大小,打开新窗口和关闭窗口,弹出对话框,导航并获取一些客户信息,例如:浏览器品牌版本,屏幕分辨率。但是BOM的最强大功能是它提供了HTML页面(文档对象)的入口,因此我们可以通过此入口使用DOM的强大功能! ! !
窗口对象是BOM表的顶级(核心)对象,所有对象都通过它进行扩展,也可以称为窗口的子对象。由于window是顶级对象,因此可以在调用其子对象时指定窗口对象而不显示。例如,以下两行代码相同:
document.write("BOM");
window.document.write("BOM");窗口-窗口对象是BOM表中所有对象的核心。窗口对象代表整个浏览器窗口,但不一定代表其中包含的内容。此时是否允许拖动,默认值为否
工具栏
布尔值
表单是否显示工具栏,默认值为否
顶部
号码
描述所创建表单的上坐标,不能为负值
状态
布尔值
表单是否显示状态栏,默认值为否
宽度
号码
创建的表单的宽度不能小于100
功能字符串中的每个功能都用逗号分隔,并且每个功能之间不允许有空格

open方法的返回值是对新窗体的window对象的引用
对话框
alert(str)-弹出一个消息对话框(对话框中有一个“确定”按钮)
confirm(str)-弹出消息对话框(该对话框包含一个“确定”按钮和一个“取消”按钮)
提示(str,默认值)-一个弹出消息对话框(该对话框包含一个“确定”按钮,一个“取消”按钮和一个文本输入框)。由于各种浏览器的实现方式不同,如果没有秒,最好也为参数提供一个空字符串(文本框中的默认值)。
状态栏
window.defaultStatus属性-更改浏览器状态栏的默认显示(状态栏中没有其他显示时),浏览器底部的区域称为状态栏,用于向用户显示信息
window.status属性-临时更改浏览器状态栏的显示
时间等待和间隔功能
setTimeout()-暂停指定的毫秒数并执行指定的代码
clearTimeout()-取消要由指定的setTimeout函数执行的代码
setInterval()-以指定的毫秒数不间断地执行指定的代码
clearInterval()-取消要由指定的setInterval函数执行的代码
setTimeout和setInterval方法有两个参数。第一个参数可以是字符串或函数引用形式的代码,第二个参数是以毫秒为单位的间隔。它们的返回是相应的清除方法。数字
var tid = setTimeout("alert(1)",1000); alert(tid); clearTimeout(tid);
历史对象,在浏览器历史记录中导航
History对象的属性:length返回浏览器历史记录列表中URL的数量
History对象的方法
位置对象
Location对象的属性

定位对象的方法
导航器对象
导航器对象的属性
框架和多窗口通信,子窗口和父窗口
JavaScript只能访问通过自身打开并使用window.open方法打开的窗口。 window.open方法打开的窗口可以通过window.opener属性访问父窗口。在打开的窗口中,您可以通过window.open方法的返回值访问打开的窗口!
框架
window.frames集合:在框架集或包含iframe标记的页面中,frames集合包含对框架中的窗口的引用
alert(frames.length);//框架的数目 alert(frames[0].document.body.innerHTML);//使用下标直接获取对框架中窗口的引用 //不但可以使用下标,还可以使用frame标签的name属性 alert(frames["frame1"].document.title);
在框架集中,您还可以使用ID获取子窗口的引用
var frame1 =document.getElementById("frame1");//这样只是获取了标签 var frame1Win = frame1.contentWindow;//frame对象的contentWindow包含了窗口的引用 //还可以直接获取框架中document的引用 var frameDoc = frame1.contentDocument; alert(frameDoc);//但IE不支持contentDocument属性
子窗口访问父窗口-窗口对象的父属性。子窗口访问窗口对象的顶层(即top属性)。浏览器检测
市场上有无数种浏览器,它们的解释引擎也不同。预计所有浏览器都将统一支持JavaScript,CSS和DOM。它必须等到一段时间,但开发人员无法等待。那天。解决历史上浏览器兼容性问题的方法很多,主要分为两种:1.userAgent字符串检测,2.对象检测;当然,我们不能考虑所有的浏览器,我们需要遵循客户的需求。现在,如果您可以确定浏览网站的用户使用或主要使用IE浏览器,则可以安全地使用富于浏览器的扩展功能。 IE浏览器当然,一旦用户开始切换到另一个浏览器,那么痛苦的日子就会开始了。以下是市场上主流浏览器的列表:
请注意,浏览器始终会更新。我们不仅需要为多个浏览器进行兼容性处理,而且还需要为同一浏览器的多个版本进行兼容性处理。例如,IE浏览器,其6.0版本和7.0版本非常受欢迎,因为Microsoft IE捆绑并与操作系统一起安装(以前它也是同时发布的,因此Microsoft每两年发布一次个人桌面)。平均而言,同一个IE也会每两年更新一次;直到现在,由于Firefox的普及,IE工作组加快了IE的更新),因此更新速度较慢,并且6.0版本和7.0版本。
市场上还有其他一些浏览器,但是由于它们是上面列出的浏览器的核心,或者使用与上述浏览器相同的解释引擎,因此无需考虑。以下是主流浏览器解释引擎的列表:
三叉戟
Trident(也称为MSHTML)是Internet Explorer的排版引擎的名称,Internet Explorer是Microsoft Windows操作系统附带的Web浏览器。它的第一个版本紧随1997年10月的Internet Explorer的第四个版本。在发布新版本之后,不断增加了新技术,并发布了Internet Explorer的新版本。在将来的最新Internet Explorer的第七版中,除了添加新技术并添加对Web标准的支持之外,Microsoft将对Trident布局引擎进行重大更改。尽管这些更改已大大落后于其他排版引擎。使用此引擎的主要浏览器:IE,TheWorld,MiniIE,Maxthon,腾讯TT浏览器。实际上,这些浏览器直接使用IE内核,因为userAgent字符串中返回的信息与IE完全相同!
壁虎
Gecko,英文为“ Gecko”。 Gecko是Mozilla Foundation开发的布局引擎的名称。它最初称为NGLayout。 Gecko的作用是读取Web内容,例如HTML,CSS,XUL和JavaScript,并将其显示在用户的屏幕上或将其打印出来。 Gecko已被许多应用程序使用,包括多种浏览器,例如Firefox,Mozilla Suite,Camino,Seamonkey等。
Presto
Presto是Opera软件为Opera 7.0及更高版本开发的浏览器排版引擎。 Presto取代了旧版Opera 4至6中使用的Elektra排版引擎,包括添加了动态功能,例如可以使用DOM和脚本语法事件重新格式化的网页或其中的一部分。 Presto启动后,会不断发布更新版本,以便可以更正许多错误,并且可以优化Javascript的读取性能,它已成为最快的引擎。
KHTML
是由KDE开发的HTML网页布局引擎之一。自KDE2以来,KDE系统已在文件和Web浏览器中使用KHTML引擎。该引擎使用C ++编程语言编写,并获得LGPL许可,支持大多数Web浏览标准。由于Microsoft的Internet Explorer占有很高的份额,因此用FrontPage创建的许多页面都包含仅IE可以读取的非标准语法。为了最大化KHTML引擎可以呈现的页面数量,还支持某些IE特定的语法。 。当前使用KHTML的浏览器是Safari和Google Chrome。而且KHTML还产生了许多派生工具,例如:WebKit,WebCore引擎
使用userAgent进行检测
以下是主要浏览器使用弹出窗口显示的userAgent字符串
IE浏览器:Mozilla /4.0(兼容; MSIE 6.0; Windows NT5.1; SV1; .NET CLR 2. 0.50727)

Firefox浏览器:Mozilla /5.0(Windows; U; Windows NT5.1; zh-CN; rv:1.9.0.4)Gecko / 2008102920 Firefox /3.0.4

Opera浏览器:Opera / 9.64(Windows NT5.1; U; Edition IBIS; zh-cn)Presto / 2. 1.1

Safari浏览器:Mozilla /5.0(Windows; U; Windows NT5.1; zh-CN)AppleWebKit / 528.16(KHTML,如Gecko)版本/4.0 Safari / 528.16

Google Chrome浏览器:Mozilla /5.0(Windows; U; Windows NT5.1; zh-CN)AppleWebKit / 53 0.5(KHTML,如Gecko)Chrome / 2. 0.17 2. 33 Safari / 53 0.5

您可以使用以下代码进行浏览器检测
var Browser = { isIE:navigator.userAgent.indexOf("MSIE")!=-1, isFF:navigator.userAgent.indexOf("Firefox")!=-1, isOpera:navigator.userAgent.indexOf("Opera")!=-1, isSafari:navigator.userAgent.indexOf("Safari")!=-1 };
但这不是万无一失的。一个特殊情况是Opera可以使用userAgent伪装自己。这是伪装为IE的userAgent:Mozilla /5.0(Windows NT5.1; U;版本IBIS; zh-cn; rv:1.8.1)Gecko / 20061208 Firefox / 2. 0.0 Opera 9.64;在完全掩饰的情况下,最后一个“ Opera 9.64”字符串将不会出现,但是Opera还具有一种特殊的自身标识方法,它将自动声明一个Opera全局变量!
不仅如此,我们的检测还忽略了一点,即那些使用相同引擎但使用不同品牌的浏览器,因此不必直接检测浏览器,而必须检测浏览器的解释引擎!
var Browser = { isIE:navigator.userAgent.indexOf("MSIE")>-1 && !window.opera, isGecko:navigator.userAgent.indexOf("Gecko")>-1 && !window.opera && navigator.userAgent.indexOf("KHTML") ==-1, isKHTML:navigator.userAgent.indexOf("KHTML")>-1, isOpera:navigator.userAgent.indexOf("Opera")>-1 };
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-349856-1.html
在此期限内有足够高的可靠性
就是阻滞中国的发展
有利益就有冲突
所以没有看到最后