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 相关文章推荐
Array.slice()与Array.splice()的返回值类型
Oct 09 Javascript
JS远程获取网页源代码实例
Sep 05 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
Mar 14 Javascript
原生JS实现-星级评分系统的简单实例
Aug 21 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
Oct 05 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
Mar 29 Javascript
webstorm添加*.vue文件支持
May 08 Javascript
JS正则表达式常见用法实例详解
Jun 19 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
Nov 27 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
May 06 Javascript
vue router返回到指定的路由的场景分析
Nov 10 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
PHP xpath()函数讲解
2019/02/11 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
2020/02/17 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
给医务人员表扬信
2014/01/12 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
开业庆典主持词
2014/03/21 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
MySQL数据管理操作示例讲解
2022/12/24 MySQL