摘要:
在 JavaScript 中,一个函数的执行过程分为两个阶段:(1)建立执行环境;(2)执行函数代码。在建立执行环境(execution context)的阶段,函数将初始化各种变量,并将它们记录在一个内部的变量对象(variable object)中。记录在该变量对象中的变量依次有下面三种:(a)函数的实际参数;(b)内部的函数声明;(c)内部的变量定义。这个阶段结束之后前面两种变量有了具体的值,而最后一种变量的值总是 undefined。在执行函数代码阶段,当函数执行到 var 语句时,这种变量才有了具体的值。例如:function hello(a) { alert(a+b()); //. 阅读全文
摘要:
要查找 DOM 中的某种节点元素,主要有 getElementById,getElementsByClassName,getElementsByTagName 和querySelectorAll 这几个方法可用。其中 getElementById 和 getElementsByTagName 方法各个浏览器都支持;而getElementsByClassName 方法 IE9 之前不支持,querySelectorAll 方法 IE8 之前以及 Firefox 3.5 之前不支持。在不支持 getElementsByClassName 方法的浏览器中可以自己编写函数来实现这个功能,例如:func 阅读全文
摘要:
CSS 中的 white-space 属性用于指定空白和换行的处理方式,适用于所有元素。它的取值有如下这些:normal合并连续空白符,换行符也作为空白符,而且自动折行,这是默认值。nowrap合并连续空白符,换行符也作为空白符,而且不自动折行。pre-line合并连续空白符,保留换行符处的换行,而且自动折行。pre保留所有空白符,保留换行符处的换行,而且不自动折行,类似于<pre>元素的行为。pre-wrap保留所有空白符,保留换行符处的换行,而且自动折行。例如,这个博客左侧栏的“阅读排行榜”和“评论排行榜”部分,默认情形每个 <li> 元素是自动折行的,然后在个人定 阅读全文
摘要:
DOM 中的 appendChild 和 insertBefore 用于插入某个节点的子节点。其中 appendChild 用于在最后一个子节点之后添加新节点,例如:var showarea = document.getElementById("showarea");var node = document.createElement("div");node.innerHTML = "this is a new node";showarea.appendChild(node);而 insertBefore 用于在某个子节点之前插入新节点 阅读全文
摘要:
每个浏览器都有它自己的用户代理(user agent)字符串,里面包含了浏览器和操作系统等信息。通过使用这个字符串,我们可以处理跨浏览器的差异。用户代理字符串保存在 JavaScript 的 navigator.userAgent 变量中。我们先来看看各个主流浏览器在各个平台的用户代理字符串的例子。1. IE 和 IE Mobile 浏览器系统平台浏览器用户代理字符串WindowsIE 9Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)WindowsIE 10Mozilla/5.0 (compatibl 阅读全文