`

14、BOM

阅读更多

BOM (浏览器对象模型),它提供了独立于内容而与浏览器窗口进行交互的对象。

 

BOM 由一系列相关的对象构成。下图展示了 基本的 BOM 体系结构:  

 

可以看到, window 对象是整个 BOM 的核心。

  • window 对象

window 对象表示整个浏览器窗口,但不必表示其中包含的内容。

 

如果页面使用框架集合,每个框架都有它自己的 window 对象表示,并存放在父window的 frames 集合中。

 

top 对象指向的都是最顶层的(最外层的)框架,即浏览器窗口自身。

 

可以用 window.frames[0] window.frames["topFrame"] 引用子框架,也可以用 top 对象代替 window 对象引用这些框架(例如 top.frames[0] )。  

window 另一个实例是 parent,表示某窗口的父窗口,即由谁打开的子窗口。

如果代码写在 topFrame 中, parent 对象就指向 top 对象,因为浏览器窗口自身被看作所有顶层框架的父框架。

最顶层窗口的top、parent对象就是window对象,也与self相同。

window 对象的 name 属性,它存储的是框架的名字,如果不是在某个框架集里的窗口,一般是没有名字的。

如果页面上没有框架, window self 就等于 top frames 集合的长度为 0

opener为创建该窗口的 Window 对象的引用,即父窗口。

screenLeft 、 screenTop 、 screenX、 screenY

IE 提供了 window.screenLeft window.screenTop 对象来判断窗口的位置,但未提供任何判断窗口大小的方法。用 document.body.offsetWidth document.body.offsetHeight 属性可以获取视口的大小(显示 HTML 页的区域),但它们不是标准属性。

Mozilla 提供 window.screenX window.screenY 属性判断窗口的位置。它还提供了 window.innerWidth window.innerHeight 属性来判断视口的大小, window.outerWidth window.outerHeight 属性判断浏览器窗口自身的大小。

Opera Safari 提供与 Mozilla 相同的属性设置。

window.open方法

 oNewWindow = window .open( [ sURL ] [ , sName ] [ , sFeatures ] [ , bReplace ] )

 

 参数

描述

URL

一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。

name

一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 <a> <form> 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。专用的框架名_self _parent _top _blank 也是有效的。

features

一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。

replace 

一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:

true - URL 替换浏览历史中的当前条目。

false - URL 在浏览历史中创建新的条目。

 window.showModalDialog 与 showModelessDialog方法

语法:

vReturnValue = window .showModalDialog( sURL [ , vArguments ] [ , sFeatures ] )

vReturnValue = window .showModelessDialog( sURL [ , vArguments ] [ , sFeatures ] )

 

区别:

showModalDialog:弹出的为模式窗口,何为模式窗口?就是弹出来的窗口只有在关闭后才能操作父窗口,像alert()。

showModelessDialog:弹出的窗口为非模式窗口。

 

点击弹出的窗口中的超链接会弹出另外窗口,如果不想弹出的话:

在被打开的网页(即超链所指向的页面)里加上<base target="_self">就可以了。这句话一般是放在<html>和<body>之间的。

 

因为这两个弹出的窗口中是不能刷新的,如果要实现刷新页面,只能通过以下脚本:

<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" style="display:none">reload...</a>

将filename.htm替换成弹出窗口页面文件并脚本放到页面里,按F5就可以刷新了,注意,这个要配合<base target="_self">使用,不然你按下F5会弹出新窗口的

 

用脚本关闭窗口

<input type="button" value="关闭" onclick="window.close()">
代码放到弹出的页面里,但也要配合<base target="_self">,不然会打开一个新的IE窗口,然后再关掉的。

 

父窗口与弹出窗口数据的传递:

 

在父窗口中传递脚本:

var oParam = {};
oParam.param1 = 'param1';//参数1
oParam.param2 = 'param2';//参数2
oParam.returnValue = undefined;//定义返回值
window.showModalDialog('b.html',oParam);
alert(oParam.returnValue);//returnValue

 

在弹出窗口中读取与返回:

alert(window.dialogArguments.param1 + ' ' + window.dialogArguments.param2);//param1 param2
window.dialogArguments.returnValue = 'returnValue';

 

注意:上面如果父窗口要接收弹出窗口的返回值时,只能用模式窗口,因为如果是非模式窗口时,则返回弹出窗口的引用。

 

在弹出窗口中也可用window.returnValue来设置返回值,这样关闭模式窗口后也可获得返回值。

窗口特征(Window Features)

 

channelmode=yes|no|1|0

是否使用剧院模式显示窗口。默认为 no

directories=yes|no|1|0

是否添加目录按钮。默认为 yes

fullscreen=yes|no|1|0

是否使用全屏模式显示浏览器。默认是 no。处于全屏模式的窗口必须同时处于剧院模式。

height=pixels

窗口文档显示区的高度。以像素计。

left=pixels

窗口的 x 坐标。以像素计。

location=yes|no|1|0

是否显示地址字段。默认是 yes

menubar=yes|no|1|0

是否显示菜单栏。默认是 yes

resizable=yes|no|1|0

窗口是否可调节尺寸。默认是 yes

scrollbars=yes|no|1|0

是否显示滚动条。默认是 yes

status=yes|no|1|0

是否添加状态栏。默认是 yes

titlebar=yes|no|1|0

是否显示标题栏。默认是 yes

toolbar=yes|no|1|0

是否显示浏览器的工具栏。默认是 yes

top=pixels

窗口的 y 坐标。

width=pixels

窗口的文档显示区的宽度。以像素计

 

 

时间间隔和暂停( setTimeout、 setInterval )

 Java 开发者熟悉对象的 wait() 方法,可使程序暂停,在继续执行下一行代码前,等待指定的时间量。这种功能非常有用,遗憾地是, JavaScript 未提供相应的支持。但这种功能并非完全不能实现,有几种方法可以采用。

 

JavaScript 支持暂停和时间间隔,这可有效地告诉浏览器应该何时执行某行代码。所谓暂停 ,是在指定的毫秒数后执行指定的代码。时间间隔是反复执行指定的代码,每次执行之间等待指定的毫秒数。

 

可以用 window 对象的 setTimeout() 方法设置暂停 。该方法接受两个参数,要执行的代码和在执行它之前要等待的毫秒数( 1/1000 秒)。第一个参数可以是代码串(与 eval() 函数的参数相同),也可是函数指针。例如,下面的代码都在 1 秒钟后显示一条警告:

当然,还可以引用以前定义的函数:

调用 setTimeout() 时,它创建一个数字暂停 ID ,与操作系统中的进程 ID 相似。暂停 ID 本质上是要延迟的进程的 ID ,在调用 setTimeout() 后,就不应该再执行它的代码。要取消还未执行的暂停,可调用 clearTimeout() 方法,并将暂停 ID 传递给它:

你也许会问:“为什么要定义暂停,又在执行它之前将其取消呢 ? ”请考虑现在大多数应用程序中可见的工具提示。当把鼠标移动到一个按钮上时,停留一会,等待出现黄色的文本框,提示该按钮的功能。如果只是短暂地把鼠标移到该按钮上,然后很快将其移到另一个按钮上,那么第一个按钮的工具提示就不会显示。这就是要在执行暂停代码前取消它的原因。因为你在执行代码前只想等待指定的时间量。如果用户的操作产生了不同的结果,则需要取消该暂停。

 

时间间隔 与暂停的运行方式相似,只是它无限次地每隔指定的时间段就重复一次指定的代码。可调用 setInterval() 方法设置时间间隔 ,它的参数与 setTimeout() 相同,是要执行的代码和每次执行之间等待的毫秒数。例如:

此外,与 setTimeout() 类似, setInterval() 方法也创建时间间隔 ID ,以标识要执行的代码。 ClearInterval() 方法可用这个 ID 阻止再次执行该代码。显然,这一点在使用时间间隔时更重要,因为如果不取消时间间隔,就会一直执行它,直到页面被卸载为止。下面是时间间隔用法的一个常见示例:

在这段代码中,每隔 500 毫秒,就对数字 iNum 进行一次增量运算,直到它达到最大值( iMax ),此时该时间间隔将被清除。也可用暂停实现该操作,这样即不必跟踪时间间隔的 ID ,代码如下:  

这段代码使用链接暂停,即 setTimeout() 执行的代码也调用了 setTimeout() 。如果在执行过增量运算后, iNum 不等于 iMax ,就调用 setTimeout() 方法。不必跟踪暂停 ID ,也不必清除它,因为代码执行后,将销毁暂停 ID

那么应该使用哪种方法呢?这由使用情况决定。在执行一组指定的代码前等待一段时间,则使用暂停。如果要反复执行某些代码,就使用时间间隔。

  • screen

availHeight 返回显示屏幕的高度 (除 Windows 任务栏之外)。

availWidth 返回显示屏幕的宽度 (除 Windows 任务栏之外)。

height 返回显示屏幕的高度。

width 返回显示器屏幕的宽度。

  •  location 

reload() 重新加载当前文档。

href 设置或返回完整的 URL。

  • History 对象

length 返回浏览器历史列表中的 URL 数量

back() 加载 history 列表中的前一个 URL

forward() 加载 history 列表中的下一个 URL

go() 加载 history 列表中的某个具体页面

go() 方法只有一个参数,即前进或后退的页面数。如果是负数,就在浏览器历史中后退。如果是正数,就前进(这种差别就像 Back Forward 按钮之间的差别)。

 

因此,后退一页,可用下面的代码:

当然, window 对象的引用不是必需的,也可使用下面的代码:

通常用该方法创建网页中嵌入的 Back 按钮,例如:

要前进一页,只需要使用正数 1

另外,用 back() forward() 方法可以实现同样的操作:

这些代码更有意义一些,因为它们精确地反应出浏览器的 Back Forward 按钮的行为。

虽然不能使用浏览器历史中的 URL ,但可以用 length 属性查看历史中的页面数:

 

 

如果想前进或后退多个页面,想知道是否可以这样做,那么上面的代码就非常有用。

  • document对象

这个对象的独特之处是它是唯一一个既属于 BOM 又属于 DOM

BOM 角度看, document 对象由一系列集合构成,这些集合可以访问文档的各个部分,并提供页面自身的信息。再有,由于 BOM 没有可以指导实现的标准,所以每个浏览器实现的 document 对象都稍有不同。

 

Document 常用对象的集合

all[]

提供对文档中所有 HTML 元素的访问。

document.all[i]

document.all[name]

document.all.tags[tagname]

all[] 已经被 Document 接口的标准的 getElementByid() 方法和 getElementsByTagName() 方法以及 Document 对象的 getElementsByName() 方法所取代。

 

如果多个元素拥有指定的 name,将得到共享同一名称的元素的一个数组。

 

forms[]

返回对文档中所有 Form 对象引用。

 

images[] 返回对文档中所有 Image 对象引用。

links[] 返回对文档中所有 Area 和 Link 对象引用。

Document 对象的属性

body 提供对 <body> 元素的直接访问。对于定义了框架集的文档,该属性引用最外层的 <frameset>。

cookie 设置或返回与当前文档有关的所有 cookie。
title 返回当前文档的标题。


URL

返回当前文档的 URL。

一般情况下,该属性的值与包含文档的 Window 的 location.href 属性相同。不过,在 URL 重定向发生的时候,这个 URL 属性保存了文档的实际 URL,而 location.href 保存了请求的 URL。

 

Document 对象的方法

getElementById() 返回对拥有指定 id 的第一个对象的引用。

getElementsByName() 返回带有指定名称的对象集合。

getElementsByTagName() 返回带有指定标签名的对象集合。

分享到:
评论

相关推荐

    sap bom 详细解析

    14. **备注**:用于记录额外的信息或说明。 #### 六、研发BOM 研发BOM主要关注于产品开发阶段的物料清单,它通常只包含一层结构,旨在描述成品的零件清单和标准单位用量。研发BOM中的子项可能是最低层的零件或者是...

    CAD明细表(BOM)处理

    《CAD明细表(BOM)处理:AutoCAD R14二次开发详解》 在工程设计领域,CAD(计算机辅助设计)软件是不可或缺的工具,其中AutoCAD R14更是广泛应用于机械、建筑等多个行业。然而,面对大量的零部件信息管理,传统的...

    K3 BOM 入系统

    14. **是否配置特征来源物料**:根据物料属性自动显示,不允许手工维护。 15. **跳层**:用于设置主件和子件的计划订单生成方式。 16. **订单编号**:表示该BOM单对应销售订单号。 17. **客户名称**:表示该BOM单...

    SAPBOM详细解析.pdf

    SAP BOM详细解析 SAP BOM(Bill of Material)是一份...14. 备注:用于注解说明。 通过以上内容,我们可以看到 BOM 在生产计划和成本计算中的重要性,也可以看到 BOM 的类型和字段,了解 BOM 在实际生产中的应用。

    Interactive Html Bom For AD-master-AD-快速BOM生成工具.zip

    《InteractiveHtmlBomForAD:前端BOM生成利器》 InteractiveHtmlBomForAD是一款专为AD(AutoDesk Inventor)设计的前端工具,旨在帮助用户快速生成BOM(Bill of Materials,物料清单)。该工具的源码是用HTML、...

    14-BOM应用.pptx

    **JavaScript BOM(浏览器对象模型)教程** JavaScript BOM(Browser Object Model)是JavaScript与浏览器交互的重要部分,它允许开发者操作浏览器窗口、页面元素以及与用户交互的各种功能。在JavaScript教学中,...

    nRF24AP1 External PA BOM

    - **100nF C14, C20**:X7R类型的电容器,X7R是一种温度稳定的陶瓷材料,适合用作旁路或去耦电容。 - **1nF C15, C16, C28**:同样是X7R类型的电容器,用于高频电路中的信号处理。 - **100pF C17, C27, C31**:NPO...

    材料清单BOM表(表格模板、DOC格式).doc

    14. 材质:材质是指产品或零部件的材料,例如金属、塑料、木材等。 15. 数量:数量是指产品或零部件的数量,用于记录和跟踪产品的生产和库存情况。 16. 备注:备注是指产品或零部件的备注信息,例如生产过程中的...

    14V-2A电源板-XL6009EI设计硬件原理图+PCB+生产BOM文件.zip

    14V-2A电源板-XL6009EI设计硬件原理图+PCB+生产BOM文件,硬件采用2层板设计,大小为106*72mm.包括ALTIUM设计原理图PCB文件,可做为你的学习设计参考。 主要器件: 贴片IC XL6009EI 贴片IC LM324 SO-14 贴片稳压...

    BOM架构说明.pdf

    14. **全阶复制**:允许复制整个BOM结构,便于快速创建新配方或调整。 15. **BOM树形维护**:支持在树形结构上直接修改,提高维护效率。 在与客户讨论和确定BOM架构方案时,通常遵循以下步骤: 1. 确定会议时间、...

    BOM架构说明实用.pdf

    14. **树形维护**:支持在BOM的树形结构上直接编辑,提高维护效率。 在确定BOM架构的过程中,通常需要与客户进行深入的沟通和协作。这个过程包括安排会议,收集产品档案,分类外购和委外材料,讨论产品结构,制定...

    机械设计pin自动上料(sw14可编辑+bom+工程图)非常好的设计图纸100%好用.zip

    压缩包内的“05月-pin自动上料(sw14可编辑+bom+工程图).zip”文件可能是一个完整的项目包,包含了PIN自动上料系统的3D模型、BOM表和相关的工程图纸。使用者可以通过解压文件来查看和编辑设计,同时根据BOM来准备材料...

    pin自动上料(sw14可编辑+bom+工程图)全套技术资料100%好用.zip

    本文将详细介绍一种专门针对pin自动上料的技术资料套装,该资料套装以“pin自动上料(sw14可编辑+bom+工程图)全套技术资料100%好用.zip”为名,涵盖了从设计到实施的全方位技术细节,为工业自动化提供了完整的解决...

    pin自动上料(sw14可编辑+bom+工程图).zip

    标题中的“pin自动上料(sw14可编辑+bom+工程图).zip”指的是一个包含自动化设备设计资料的压缩文件,主要用于插座PIN的自动上料流程。SW14可能指的是SolidWorks 2014,这是一个流行的三维CAD软件,用于机械设计。BOM...

    0.75-15KW变频器直插键盘板pads原理图+AD PCB图+BOM+工艺说明文件.zip

    0.75-15KW变频器直插键盘板pads原理图+AD PCB图B+BOM+工艺说明文件, 硬件采用2层板设计,大小为66*55mm,包括完整的原理图PCB文件,可供学习设计参考, 主要器件: Yumax2KB-01 74HC14D(NXP飞利浦) 74HC165D(NXP...

    锂电KF机 锂电卧式扣盖整机(含工程图+bom)sw14可编辑.rar

    标题中的“锂电KF机 锂电卧式扣盖整机(含工程图+bom)sw14可编辑.rar”表明这是一个关于锂离子电池制造设备的项目,具体来说是用于电池组装过程中的卧式扣盖步骤。这个压缩包包含完整的工程图纸和物料清单(BOM),...

    波峰焊转弯接驳线(sw14可编辑+工程图+bom).zip

    "sw14"通常指的是SolidWorks 2014,这是一个流行的三维计算机辅助设计(CAD)软件,用于设计和模拟各种工程产品,包括电气连接线。在这个压缩包中,用户可以找到关于波峰焊转弯接驳线的设计资料,包括可编辑的Solid...

    基于XL6009EI设计14V-2A电源板硬件(原理图+PCB+生产BOM)文件.zip

    基于XL6009EI设计14V-2A电源板硬件(原理图+PCB+生产BOM)文件,硬件采用2层板设计,大小为106*72mm.包括ALTIUM设计原理图PCB文件,可做为你的学习设计参考。 主要器件: 贴片IC XL6009EI 贴片IC LM324 SO-14 贴片...

    电子产品设计BOM表实例.xls

    贴片电阻 0603 5% 10K ohm---R9,1,PC,,, 12,CAS-S-0805-224M-250,贴片电容 0805 20% 0.22uF/25V---C12~C16,5,PC,,, 14,CAS-S-0603-104M-250,"贴片电容 0603 20% 0.1uF/25V---C5~C8,C10",5,PC,,, 15,CAS-S-0603-200G-...

Global site tag (gtag.js) - Google Analytics