js-BOM事件处理机制

一、BOM模型1、什么是BOM?browserobjectmodel。浏览器内置的一些对象,用来操作窗口。这些对象包括window,screen,location,navigator,document,XmlRequest等。虽然该部分没有规范,但是,各个浏览器都支持这些对象。2、Window对象open方法打开一个新的窗口,例如:windoopen('1','new','height=100,width=200,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no');'1'弹出窗口的文件名;'new'弹出窗口的名字;如果该参数指定了一个已经存在的窗口,则open()方法不再创建一个新窗口,而只是返回对指定窗口的句柄。height=100窗口高度;width=200窗口宽度;top=0窗口距离屏幕上方的象素值;left=0窗口距离屏幕左侧的象素值;toolbar=no是否显示工具栏,yes为显示;menubar是否显示菜单栏。scrollbars是否显示滚动栏。resizable=no是否允许改变窗口大小,yes为是。location=no是否显示地址栏,yes为是。status=no是否显示状态栏内的信息。close方法关闭窗口返回值为窗口对象句柄status属性设置或返回窗口状态栏中的文本。document属性获得Document对象location属性获得Location对象navigator属性获得Navigator对象screen属性获得Screen对象opener属性获得打开当前窗口的窗口对象parent属性获得当前窗口的父窗口alert方法弹出一个警告对话框confirm方法弹出一个选择对话框,返回用户是否确认。prompt方法弹出一个供用户输入信息的对话框,返回用户输入信息。setTimeout方法setTimeout(要执行的函数,毫秒数)方法用于在指定的毫秒数后调用函数。setInterval方法按照指定的周期(以毫秒计)来调用函数。vartaskId=setInterval(要执行的函数,毫秒数);返回值taskId用于clearInterval方法。clearInterval方法clearInterval(taskId);3、Document对象代表整个html文档的根节点。varobj=document.getElementById(id);varobj=document.createElement(tagName);document.write(string);4、Location对象封装了浏览器地址栏的相关信息。href属性:指定加载的页面。比如:location.href='js02';5、Navigator对象封装了浏览器本身的一些信息,比如浏览器的类型、版本、支持的语言等。6、Screen对象封装了屏幕的一些信息,比如分辨率。二、事件处理机制1、事件是如何产生的。第一种情况,用户对网页做了某些操作,比如,点击了一个按钮,产生点击事件。第二种情况,用户没有对网页做操作,也可能产生事件,比如浏览器已经将整个页面加载完毕,会产生加载完成事件。当事件产生以后,浏览器会查找产生事件的节点有没有绑订相应的事件处理代码。如果有,则调用该代码来处理。如果没有,会继续向上查找父节点,有没有对应的事件处理代码(事件冒泡)。2、绑订事件处理代码1)绑订事件处理代码到html标记之上。比如:<aid="a1"href=""onclick="f1();">click</a>2)绑订事件处理代码到dom节点之上。varobj=document.getElementById('a1');obj.onclick=f1;要注意:a,f1不要加"()",加"()"表示立即执行f1这个函数。b,可以使用匿名函数进行绑订。即:obj.onclick=function(){//代码。}c,绑订事件处理代码到dom节点之上,可以将js代码与html完全分离,方便代码的维护。d,如果要给绑订的函数传参。可以使用匿名函数来解决。即:obj.onclick=function(){f(参数);}3)使用浏览器自带的绑订方式,不同的浏览器,有各自独有的绑订方式,因为不兼容,所以尽量少用。3、事件对象1)获得事件对象ie:可以直接使用event获得。firefox:必须给方法添加一个参数event。为了兼容ie,firefox,给方法添加一个参数event。2)事件对象的作用a,获得鼠标点击的坐标event.clientXevent.clientYb,获得事件源(产生事件的那个对象)firefox:event.target获得ie:event.srcElement获得4、事件冒泡1)什么是事件冒泡?当一个节点产生事件以后,该事件会依次向上传递(先传给父节点,如果父节点还有父节点,再向上传递)。2)如何禁止冒泡?event.cancelBubble=true;三、面向对象基础1、如何定义一个类型js没有定义类型的专门的语法,但是,可以利用函数来定义一个类型。functionPerson(name,age){//this修饰的变量称为属...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?