Pro JavaScript Techniques学习笔记


Posted in Javascript onDecember 28, 2010

全局变量是Window对象属性的一部分,例子:

var test = 'test'; 
alert(window.test);

浏览器渲染和操作HTML的大致顺序:

HTML解析完毕
外部脚本和样式表加载完毕
脚本在文档内解析并执行
HTML DOM完全构造起来
图片和外部内容加载
网页完成加载
所有的主流浏览器都实现了innerHTML属性,但是因为没有统一标准,所以或多或少会有一些怪异的bug。

基于Mozilla的浏览器在innerHTML声明中并不回会返回<style>元素;
IE返回的元素字符都是大写的;
innerHTML作为一个只能用在HTML DOM文档的元素中的属性,若在XML DOM文档中使用的话只会返回null值。
检查元素是否有用一个指定的属性:

function hasAttribute(elem, name) { 
return elem.getAttribute(name) != null; 
};

JavaScript事件在两个阶段中执行:捕获和冒泡。

GET请求不应具有破坏性的副作用(比如删除一条消息)。

点击、鼠标悬停和鼠标离开事件的任何场合下,都要考虑提供非鼠标绑定的可选事件。

onmouseout ?> onblur 
onmousedown ?> onkeydown 
onmouseup ?> onkeyup 
onclick ?> onkeypress 
onmouseover ?> onfocus

eg.
var ax = document.getElementsByTagName('a'); 
for (var i = 0; i < ax.length; i++) { 
ax[i].onmouseover = ax[i].onfocus = function(){ 
this.style.backgroundColor = 'blue'; 
}; 
ax[i].onmouseout = ax[i].onblur = function(){ 
this.style.backgroundColor = 'white'; 
}; 
};

静态定位:这是元素定位的默认方式,它简单地遵循文档的普通流动(flow)。当元素是静态定位时,top和left属性无效。

position:static;top:0px;left:0px;
相对定位:这种定位形式与静态定位非常相似,因为元素会继续遵循文档的普通流动,除非受到其他指定的影响。但是,设置top或者left属性会引起元素相对于它的原始(静态)位置进行偏移。

position:relative;top:-50px;left:50px;
绝对定位:绝对定位的元素完全跳出页面布局的普通流动,它会相对于它的第一个非静态定位的祖先元素而展示。如果没有这样的祖先元素,则相对于整个文档。

position:absolute;top:20px;left:0px;
固定定位:固定定位把元素相对于浏览器窗口而定位。设置元素的top和left为0会使它显示在浏览器左上角,它完全忽略浏览器滚动条的拖动,一直会出现在用户的视野。

position:fixed;top:20px;left:0px;
开发预留退路(degrading gracefully):为页面增加任何形式的动态交互都有疏远某部分用户的潜在可能。应该时刻在意的是,当JavaScript或者CSS禁用的时候,Web应用程序应该具备基最基本可用性。

Javascript 相关文章推荐
用JavaScript对JSON进行模式匹配(Part 1-设计)
Jul 17 Javascript
jquery 使用点滴函数代码
May 20 Javascript
javascript中if和switch,==和===详解
Jul 30 Javascript
Bootstrap表单组件教程详解
Apr 26 Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 Javascript
DWR中各种java方法的调用
May 04 Javascript
react-router实现跳转传值的方法示例
May 27 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
Vue父子组件双向绑定传值的实现方法
Jul 31 Javascript
小程序实现单选多选功能
Nov 04 Javascript
移动端如何用下拉刷新的方式实现上拉加载
Dec 10 Javascript
vue实现弹幕功能
Oct 25 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
Dec 28 #Javascript
JavaScript动态调整TextArea高度的代码
Dec 28 #Javascript
JavaScript性能陷阱小结(附实例说明)
Dec 28 #Javascript
javascript写的日历类(基于pj)
Dec 28 #Javascript
Jquery下attr和removeAttr的使用方法
Dec 28 #Javascript
基于Jquery的动态创建DOM元素的代码
Dec 28 #Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
Apr 04 #Javascript
You might like
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python基础教程之自定义函数介绍
2014/08/29 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python 把列表转化为字符串的方法
2018/10/23 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
Python类如何定义私有变量
2020/02/03 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
Python实现仿射密码的思路详解
2020/04/23 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
android面试问题与答案
2016/12/27 面试题
室内设计实习自我鉴定
2013/09/25 职场文书
教师自我反思材料
2014/02/14 职场文书
电焊工岗位职责
2014/03/06 职场文书
劲霸男装广告词
2014/03/21 职场文书
代收款委托书范本
2014/10/01 职场文书
房屋转让协议书
2014/10/18 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js