JS中document对象详解

转自:http://www.cnblogs.com/andycai/archive/2010/06/29/1767351.html

 

对象属性
document.title //
设置文档标题等价于HTML<title>标签
document.bgColor //
设置页面背景色
document.fgColor //
设置前景色(文本颜色)


document.linkColor //
未点击过的链接颜色
document.alinkColor //
激活链接(焦点在此链接上)的颜色
document.vlinkColor //
已点击过的链接颜色


document.URL //
设置URL属性从而在同一窗口打开另一网页
document.fileCreatedDate //
文件建立日期,只读属性
document.fileModifiedDate //
文件修改日期,只读属性
document.fileSize //
文件大小,只读属性
document.cookie //
设置和读出cookie
document.charset //
设置字符集 简体中文:gb2312
---------------------------------------------------------------------


对象方法
document.write() //
动态向页面写入内容
document.createElement(Tag) //
创建一个html标签对象
document.getElementById(ID) //
获得指定ID值的对象
document.getElementsByName(Name) //
获得指定Name值的对象

document.body.appendChild(oTag)
---------------------------------------------------------------------

body-主体子对象

document.body                   //指定文档主体的开始和结束等价于<body></body>
document.body.bgColor           //设置或获取对象后面的背景颜色
document.body.link              //未点击过的链接颜色
document.body.alink             //激活链接(焦点在此链接上)的颜色
document.body.vlink             //已点击过的链接颜色
document.body.text              //文本色
document.body.innerText         //设置<body>...</body>之间的文本
document.body.innerHTML         //设置<body>...</body>之间的HTML代码
document.body.topMargin         //页面上边距
document.body.leftMargin        //页面左边距
document.body.rightMargin       //页面右边距
document.body.bottomMargin      //页面下边距
document.body.background        //背景图片
document.body.appendChild(oTag) //动态生成一个HTML对象
----------------------------
常用对象事件:

document.body.onclick="func()"              //鼠标指针单击对象是触发
document.body.onmouseover="func()"          //鼠标指针移到对象时触发
document.body.onmouseout="func()"           //鼠标指针移出对象时触发

 

document.body.innerHTML='br/><br/><br/This is not at the bottom!br/"+document.body.innerHTML;

 

<body>
test
<script>
function dothis() {
alert('done!');
}
</script>


<script>
document.body.onclick = dothis();
</script>
</body>

<SCRIPT LANGUAGE="JavaScript">

for(a in document.body){
document.write(a);
document.write("----");
document.write(document.body[a]);
document.write("<br>");
}
</SCRIPT>

 

var br = document.createElement("br");
document.body.appendChild(br); ======================================================================
location:

document.location.hash          // #
号后的部分  VS   window.location.hash
document.location.host          // 域名+端口号
document.location.hostname      // 域名
document.location.href          // 完整URL
document.location.pathname      // 目录部分(应用程序)
document.location.port          // 端口号
document.location.protocol      // 网络协议(http:)
document.location.search        // ?号后的部分
----------------------------
常用对象事件:

documeny.location.reload()          //刷新网页
document.location.reload(URL)       //打开新的网页
document.location.assign(URL)       //打开新的网页
document.location.replace(URL)      //打开新的网页

 

URL:统一资源定位符 (Uniform Resource Locator, URL)

完整的URL由这几个部分构成:

scheme://host:port/path?query#fragment

scheme:通信协议

常用的http,ftp,maito

host:主机

服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。

port:端口号

整数,可选,省略时使用方案的默认端口,如http的默认端口为80

path:路径

由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

query:查询

可选,用于给动态网页(如使用CGIISAPIPHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用"&"符号隔开,每个参数的名和值用"="符号隔开。

fragment:信息片断

字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)

对于这样一个URL

http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

 

document.hrefdocument.locationwindow.location区别

document.href="http://www.master.net"  

document.location="http://www.master.net"  

window.location="http://www.master.net"  

只是属于包含的问题,一个是window,一个是document

location 是个对象,比如本页的document.locationwindow.location,它的属性有:

   location.hostname    =    community.****.net  

   location.href    =   http://community.****.net/Expert/topic/4033/4033372.xml?temp=2.695864E-02  

   location.host    =    community.****.net  

   location.hash    =    

   location.port    =    

   location.pathname    =    /Expert/topic/4033/4033372.xml  

   location.search    =    ?temp=2.695864E-02  

   location.protocol    =    http:   

   href location的属性,类别是string。用户不能改变document.location(因为这是当前显示文档的位置)。但是可以改变window.location (用其它文档取代当前文档) . document.location是只读的。window.location是可读可写的。 

 ======================================================================
selection-选区子对象
document.selection 表示当前网页中的选中内容。

方法有:

clear 清除选中的内容

empty 取消选中

createRange 返回 TextRange ControlRange 对象

createTextRange  返回被建立的 TextRange 对象

 

使用:oTextRange = object . createTextRange ()
返回对象(Element)。如果成功的话返回被建立的 TextRange 对象。

说明:
object 建立 TextRange 对象。
使用此 TextRange 对象可以检索和修改 object 内的文本。 TextRange 对象的 htmlText 特性尤其提供了方便。

 

TextRange的常用属性与方法:

属性
boundingHeight
获取绑定TextRange对象的矩形的高度
boundingLeft
获取绑定TextRange 对象的矩形左边缘和包含TextRange对象的左侧之间的距离
offsetLeft
获取对象相对于版面或由offsetParent属性指定的父坐标的计算左侧位置
offsetTop
获取对象相对于版面或由offsetParent属性指定的父坐标的计算顶端位置
htmlText
text
设置或获取范围内包含的文本
方法
moveStart
更改范围的开始位置
moveEnd
更改范围的结束位置
collapse
将插入点移动到当前范围的开始或结尾
move
折叠给定文本范围并将空范围移动给定单元数
execCommand
在当前文档、当前选中区或给定范围上执行命令
select
将当前选择区置为当前对象
findText
在文本中搜索文本并将范围的开始和结束点设置为包围搜索字符串。

使用TextRange对象通常包括三个基本的步骤:

1.
创建文本范围
2.
设置开始点和结束点
3.
对范围进行操作

function rdl_doTextRange()

{
var oMessage=document.all("oMessage");
var oTextRange=document.body.createTextRange();
if (oTextRange!=null) alert(oTextRange.htmlText);

}

<span id=oMessage>我是一些文字。</span>
<br><br>
<input type=button value="
建立选择区" onclick="rdl_doTextRange();">

createTextRange用法:

1. 返回createTextRangetexthtmlText

<script language="javascript">
function test()
{

var rng=document.body.createTextRange();

alert(rng.text)
}
function test1()
{

var rng=document.body.createTextRange();

alert(rng.htmlText)
}
</script>
2.获取指定文本框中的选中的文字:只响应第一个文本框

<input id="inp1" type="text" value="1234567890">
<input id="inp2" type="text" value="9876543210">
<input type="button" onclick="test()" value="确定">
<script language="javascript">
function test()
{

var o=document.getElementById("inp1")

var r = document.selection.createRange();

if(o.createTextRange().inRange(r))

alert(r.text);
}
</script>

3. 页面文本倒序查找

abababababababa

<input value="倒序查找a" onclick=myfindtext("a") type="button">
<script language ='javascript'>
var rng = document.body.createTextRange();
function myfindtext(text)
{

rng.collapse(false);

if(rng.findText(text,-1,1))
{

rng.select();

rng.collapse(true);
}else
{alert("end");}

}
</script>

<div>请选中这里的部分文字。</div>

<div><input type="button" value="请选中部分文字,然后点击这里执行 empty" onclick="javascript:Foo();" /></div>

<script type="text/javascript" language="javascript">

<!--

function Foo()

{

    document.selection.empty();

}

-->

</script>

 

 

<div>请选中这里的部分文字。</div>  

  <div><input type="button" value="加粗" onclick="javascript:Bold();" /></div>  

<script type="text/javascript" language="javascript">  

<!--   

function Bold()   

{   

    var r = document.selection.createRange();   

    r.execCommand("Bold");   

}   

-->  

</script>  

 

 


======================================================================

images
集合(页面中的图象)

a)
通过集合引用
document.images //
对应页面上的<img>标签
document.images.length //
对应页面上<img>标签的个数
document.images[0] //
1<img>标签
document.images[i] //
i-1<img>标签

b)
通过name属性直接引用
<img name="oImage">
document.images.oImage //document.images.name
属性

 

c)引用图片的src属性
document.images.oImage.src //document.images.name
属性.src

d)
创建一个图象
var oImage
oImage = new Image()
document.images.oImage.src="/1.jpg"
同时在页面上建立一个<img>标签与之对应就可以显示

<html>
<img name=oImage>
<script language="javascript">
var oImage
oImage = new Image()
document.images.oImage.src="/1.jpg"
</script>
</html>

----------------------------------------------------------------------

forms
集合(页面中的表单)

a)
通过集合引用
document.forms //
对应页面上的<form>标签
document.forms.length //
对应页面上<form>标签的个数
document.forms[0] //
1<form>标签
document.forms[i] //
i-1<form>标签
document.forms[i].length //
i-1<form>中的控件数
document.forms[i].elements[j] //
i-1<form>中第j-1个控件

b)
通过标签name属性直接引用
<form name="Myform">

<input name="myctrl">

</form>
document.Myform.myctrl //document.
表单名.控件名

-----------------------------------------------------------------------
<html>
<!--Text
控件相关Script-->
<form name="Myform">

<input type="text" name="oText">

<input type="password" name="oPswd">
<form>
<script language="javascript">
//
获取文本密码框的值
document.write(document.Myform.oText.value)
document.write(document.Myform.oPswd.value)
</script>
</html>
-----------------------------------------------------------------------
<html>
<!--Select
控件相关Script-->
<form name="Myform">
<select name="oSelect">

<option value="语文">1</option>

<option value="数学">2</option>

<option value="英语">3</option>
</select>
</form>

<script language="javascript">
//
遍历select控件的option
var length
length=document.Myform.oSelect.length
for(i=0;i<length;i++)
document.write(document.Myform.oSelect[i].value)
</script>

<script language="javascript">
//
遍历option项并且判断某个option是否被选中
for(i=0;i<document.Myform.oSelect.length;i++){

if(document.Myform.oSelect[i].selected!=true)

document.write(document.Myform.oSelect[i].value)

else

document.write("<font color=red>"+document.Myform.oSelect[i].value+"</font>")
}
</script>

<script language="javascript">
//
根据SelectedIndex打印出选中的option
//(0
document.Myform.oSelect.length-1)
i=document.Myform.oSelect.selectedIndex
document.write(document.Myform.oSelect[i].value)
</script>

<script language="javascript">
//
动态增加select控件的option
var oOption = document.createElement("OPTION");
oOption.text="4";
oOption.value="4";

document.Myform.oSelect.add(oOption);
</script>
<html>
-----------------------------------------------------------------------
<Div id="oDiv">Text</Div>
document.all.oDiv //
引用图层oDiv
document.all.oDiv.style
document.all.oDiv.style.display="" //
图层设置为可视
document.all.oDiv.style.display="none" //
图层设置为隐藏
/*document.all
表示document中所有对象的集合
只有ie支持此属性因此也用来判断浏览器的种类*/

----------------------------
图层对象的4个属性
document.getElementById("ID").innerText        //动态输出文本
document.getElementById("ID").innerHTML      //动态输出HTML
document.getElementById("ID").outerText        //innerText
document.getElementById("ID").outerHTML      //innerHTML
----------------------------
示例代码
<html>
<script language="javascript">
function change(){
document.all.oDiv.style.display="none"
}
</script>
<Div id="oDiv" onclick="change()">Text</Div>
</html>

<html>
<script language="javascript">
function changeText(){
document.getElementById("oDiv").innerText="NewText"
}
</script>
<Div id="oDiv" onmouseover="changeText()">Text</Div>
</html>



document.anchors[]   VS document.links[]
document.anchors 是一个数组,包含了文档中所有锚标记(包含 name 属性的<a>标记),按照在文档中的次序,从 0 开始给每个锚标记定义了一个下标。
document.links 也是一个数组,包含了文档中所有连接标记(包含 href 属性的<a>标记和<map>标记段里的<area>标记),按照在文档中的次序,从 0 开始给每个连接标记定义了一个下标。
如果一个<a>标记既有 name 属性,又有 href 属性,则它既是一个 Anchor 对象,又是一个 Link 对象。
IE 中,如果在<a>标记中添加“id="..."”属性,则这个<a>对象被赋予一个标识(ID),调用这个对象的时候只需要使用“<id>”就行了。很多文档部件都可以用这个方法来赋予 ID,但要注意不能有两个 ID 相同。

anchors links 作为数组,有数组的属性和方法。单个 Anchor 对象没有属性;单个 Link 对象有属性。

上一篇:Ubuntu下安装JDK的两种方法


下一篇:hdu 4009 最小树形图