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 相关文章推荐
Enter转换为Tab的小例子(兼容IE,Firefox)
Nov 14 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JQuery实现带排序功能的权限选择实例
May 18 Javascript
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
Jun 25 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
Aug 28 Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 Javascript
JavaScript判断变量名是否存在数组中的实例
Dec 28 Javascript
浅析Vue中method与computed的区别
Mar 06 Javascript
Vue 自定义动态组件实例详解
Mar 28 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
Apr 28 Javascript
ES6 Generator基本使用方法示例
Jun 06 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站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
解决vue 绑定对象内点击事件失效问题
2018/09/05 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
python类定义的讲解
2013/11/01 Python
python黑魔法之参数传递
2016/02/12 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Flask之flask-script模块使用
2018/07/26 Python
详解python分布式进程
2018/10/08 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Django之腾讯云短信的实现
2020/06/12 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
中国世界遗产导游词
2015/02/13 职场文书
公司财务部岗位职责
2015/04/14 职场文书
小学运动会开幕词
2016/03/04 职场文书
2019入党申请书格式
2019/06/25 职场文书