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中实现单体模式分享
Jan 29 Javascript
详解js图片轮播效果实现原理
Dec 17 Javascript
jQuery给指定的table动态添加删除行的操作方法
Oct 12 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
简单的vue-resourse获取json并应用到模板示例
Feb 10 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
Oct 18 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
May 13 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
layui点击弹框页面 表单请求的方法
Sep 21 Javascript
node.js中事件触发器events的使用方法实例分析
Nov 23 Javascript
Vue组件通信入门之Provide和Inject机制
Dec 29 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调用Twitter的RSS的实现代码
2010/03/10 PHP
关于php循环跳出的问题
2013/07/01 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
扩展String功能方法
2006/09/22 Javascript
js 页面输出值
2008/11/30 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
用Python抢过年的火车票附源码
2015/12/07 Python
python3人脸识别的两种方法
2019/04/25 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
公证书样本
2014/04/10 职场文书
员工保密承诺书
2014/05/28 职场文书
英语教学课后反思
2016/02/15 职场文书