当前位置: 代码迷 >> Web前端 >> 犀牛书第五版读书笔记――Chapter 15. Scripting Documents(第部分)
  详细解决方案

犀牛书第五版读书笔记――Chapter 15. Scripting Documents(第部分)

热度:441   发布时间:2012-10-23 12:12:22.0
犀牛书第五版读书笔记――Chapter 15. Scripting Documents(第一部分)
1.document.write()方法只能在html文档解析过程中调用,如果在解析完成之后才调用,则会创建一个新的文档,并将旧文档覆盖。因此,有时候可以用如下代码创建新窗口
function hello() {
    var w = window.open();             //    Create a new window with no content
    var d = w.document;                // Get its Document object
    d.open();                             // Start a new document (optional)
    d.write("<h1>Hello world!</h1>");  // Output document content
    d.close();                           // End the document
}

不过这种做法现在已经比较少见了

2.document有一个referrer属性,该属性包含了用户链接到当前文档的文档的URL。(也就是跳转前的url)

3.document对象有一些数组属性,可以作为访问html元素的快捷方式,包括包括forms等,不过由于是采用下标方式访问,比如forms[0]代表第一个form元素,所以对文档结构的稳定性有较高要求

4.这些属性(forms[]等)是可以编程的,但是要注意不能改变文档的结构,因为这些遗留的DOM API不允许在reflow的情况下改变文档

5.为了更方便地访问到文档元素,可以给元素命名
<form name="f1"><input type="button" value="Push Me"></form>
document.forms[0]     // Refer to the form by position within the document
document.forms.f1     // Refer to the form by name as a property
document.forms["f1"]  // Refer to the form by name as an array index

6.事实上,给<form>,<img>,<applet>(注意,不包括<a>)这些元素命名,相当于在document里定义了同名属性,就可以直接访问了,而不需要通过对应的数组元素,如
document.f1

7.form中的子元素,也可以命名,然后直接访问到
<form name="f1">
    <input type="text" name="t1" />
</form>

然后就可以用document.f1.t1来找到input元素。而且要注意,这个name属性同时也是提交表单时提交到后台的param名,如果和struts2共同作用,就会绑定到action的t1 field上

8.绑定事件处理函数,在html和javascript中的写法不同
<form name="myform" onsubmit="return validateform();">...</form>

document.myform.onsubmit = validateform;

在javascript中,只需要给form的onsubmit property绑定一个函数。而在html中,需要在onsubmit attribute上实际调用这个函数
  相关解决方案