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上实际调用这个函数