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 相关文章推荐
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
Dec 02 Javascript
基于jQuery的试卷自动排版系统实现代码
Jan 06 Javascript
js 动态修改css文件用到了cssRule
Aug 20 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
Dec 03 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
Feb 18 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
Dec 13 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
javaScript产生随机数的用法小结
Apr 21 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
PHP 开发工具
2006/12/06 PHP
收集的DedeCMS一些使用经验
2007/03/17 PHP
php中动态修改ini配置
2014/10/14 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
基于python图像处理API的使用示例
2020/04/03 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
合作意向书模板
2014/03/31 职场文书
《长江之歌》教学反思
2014/04/17 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
2014年市场部工作总结
2014/11/25 职场文书
绿色环保倡议书
2015/04/28 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
Python面向对象之内置函数相关知识总结
2021/06/24 Python