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的开源工具PACKER2.0.2
Nov 04 Javascript
JavaScript 乱码问题
Aug 06 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
apply和call方法定义及apply和call方法的区别
Nov 15 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
Feb 25 Javascript
Bootstrap路径导航与分页学习使用
Feb 08 Javascript
angular select 默认值设置方法
Jun 23 Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 Javascript
es6函数之尾调用优化实例分析
Apr 25 Javascript
解决vue组件销毁之后计时器继续执行的问题
Jul 21 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
Nov 03 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 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
利用javascript查看html源文件
2006/11/08 Javascript
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
通用JS事件写法实现代码
2009/01/07 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
Python中使用动态变量名的方法
2014/05/06 Python
python 基础教程之Map使用方法
2017/01/17 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
设置python3为默认python的方法
2018/10/31 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
python爬虫实现获取下一页代码
2020/03/13 Python
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
自荐信的五个重要部分
2013/10/29 职场文书
高中生家长寄语大全
2014/04/03 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
检讨书大全
2015/01/27 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
Python Pygame实战之塔防游戏的实现
2022/03/17 Python
基于PyQt5制作一个群发邮件工具
2022/04/08 Python
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android