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 相关文章推荐
js Form.elements[i]的使用实例
Nov 13 Javascript
javascript中普通函数的使用介绍
Dec 19 Javascript
节点的插入之append()和appendTo()的用法介绍
Jan 13 Javascript
jQuery zTree加载树形菜单功能
Feb 25 Javascript
js实现rem自动匹配计算font-size的示例
Nov 18 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
Apr 21 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
May 13 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
微信小程序模板消息推送的两种实现方式
Aug 27 Javascript
TypeScript之调用栈的实现
Dec 31 Javascript
jquery实现两个div中的元素相互拖动的方法分析
Apr 05 jQuery
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
使用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
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
python利用装饰器进行运算的实例分析
2015/08/04 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
Python入门_条件控制(详解)
2017/05/16 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
python多进程并行代码实例
2019/09/30 Python
python软件都是免费的吗
2020/06/18 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
元旦寄语大全
2014/04/10 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python