Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
Body 對(duì)象
Body 對(duì)象代表了 HTML body 元素。
Body 對(duì)象代表文檔的主體 (HTML body) 。
body 元素包含了所有的 HTML 文檔,如文本,超級(jí)鏈接,圖片,表格,列表,等等。
Body 對(duì)象屬性
W3C: W3C 標(biāo)準(zhǔn)。
屬性 | 描述 | W3C |
---|---|---|
aLink | 設(shè)置或者返回主體元素的 alink 屬性。 | Yes |
background | 設(shè)置或者返回body元素的 background 屬性。 | Yes |
bgColor | 設(shè)置或者返回body元素的 bgColor 屬性。 | Yes |
link | 設(shè)置或者返回主體元素的 link 屬性。 | Yes |
text | 設(shè)置或者返回主體元素的 text 屬性。 | Yes |
vLink | 設(shè)置或者返回主體元素的 vLink 屬性。 | Yes |
Body 對(duì)象事件
事件 | 描述 | W3C |
---|---|---|
onload | 腳本在頁面完全載入后會(huì)被立即執(zhí)行。 | Yes |
標(biāo)準(zhǔn)屬性和事件
Body 對(duì)象同樣支持標(biāo)準(zhǔn)的 屬性 和 事件。
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
么是內(nèi)置對(duì)象呢????jī)?nèi)置對(duì)象,其實(shí)就是JSP中已經(jīng)給我們提供好的一些Java對(duì)象,我們可以直接在JSP頁面里面使用這些內(nèi)置對(duì)象,而不需要我們自己去創(chuàng)建。JSP里面提供了9個(gè)內(nèi)置對(duì)象,分別是:request、response、session、application、out、config、pageContext、page、exception。這一小節(jié)我們就來逐個(gè)介紹一下內(nèi)置對(duì)象的用法。
內(nèi)置對(duì)象本質(zhì)上就是JSP文件編譯成Servlet程序之后,在_jspService()方法中創(chuàng)建好的一些java對(duì)象,這些對(duì)象我們可以直接在JSP頁面使用。查看JSP文件編譯之后的源代碼文件如下所示:
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
final java.lang.String _jspx_method=request.getMethod();
if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允許 GET、POST 或 HEAD。Jasper 還允許 OPTIONS");
return;
}
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session=null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out=null;
final java.lang.Object page=this;
javax.servlet.jsp.JspWriter _jspx_out=null;
javax.servlet.jsp.PageContext _jspx_page_context=null;
try {
response.setContentType("text/html;charset=UTF-8");
pageContext=_jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context=pageContext;
application=pageContext.getServletContext();
config=pageContext.getServletConfig();
session=pageContext.getSession();
out=pageContext.getOut();
_jspx_out=out;
out.write("\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write(" <title>JSP內(nèi)置對(duì)象response</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write(" <h3>JSP內(nèi)置對(duì)象response</h3>\r\n");
out.write(" ");
// 在JSP里面,可以直接使用 response 這個(gè)內(nèi)置對(duì)象進(jìn)行操作
response.sendRedirect("https://www.baidu.com");
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>\r\n");
} catch (java.lang.Throwable t) {
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
out=_jspx_out;
if (out !=null && out.getBufferSize() !=0)
try {
if (response.isCommitted()) {
out.flush();
} else {
out.clearBuffer();
}
} catch (java.io.IOException e) {}
if (_jspx_page_context !=null) _jspx_page_context.handlePageException(t);
else throw new ServletException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
通過上面的源代碼可以看到,源代碼中有下圖幾個(gè)內(nèi)置對(duì)象。
這里我們就開始介紹一下request、response、session、application、out、config、pageContext、page、exception九個(gè)內(nèi)置對(duì)象的具體使用。
request對(duì)象,是一個(gè)HttpServletRequest的請(qǐng)求對(duì)象,使用request對(duì)象可以獲取到當(dāng)前HTTP請(qǐng)求中的信息。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP內(nèi)置對(duì)象request</title>
</head>
<body>
<h3>JSP內(nèi)置對(duì)象request</h3>
<%
// 在JSP里面,可以直接使用 request 這個(gè)內(nèi)置對(duì)象進(jìn)行操作
String username=request.getParameter("username");
System.out.println(username);
%>
</body>
</html>
request請(qǐng)求對(duì)象中的常用方法,可以看下我之前寫的Servlet筆記。
response對(duì)象,是一個(gè)HttpServletResponse響應(yīng)對(duì)象,使用response響應(yīng)對(duì)象可以獲取到HTTP響應(yīng)中的一些信息。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP內(nèi)置對(duì)象response</title>
</head>
<body>
<h3>JSP內(nèi)置對(duì)象response</h3>
<%
// 在JSP里面,可以直接使用 response 這個(gè)內(nèi)置對(duì)象進(jìn)行操作
response.sendRedirect("https://www.baidu.com");
%>
</body>
</html>
response響應(yīng)對(duì)象中的常用方法,可以看下我之前寫的Servlet筆記。
request和response對(duì)象是在_jspService()方法參數(shù)中的,如下圖所示:
session對(duì)象,是一個(gè)HttpSession會(huì)話對(duì)象,可以獲取到當(dāng)前Session會(huì)話信息。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP內(nèi)置對(duì)象session</title>
</head>
<body>
<h3>JSP內(nèi)置對(duì)象session</h3>
<%
// 在JSP里面,可以直接使用 session 這個(gè)內(nèi)置對(duì)象進(jìn)行操作
session.setAttribute("username", "IDEA");
%>
</body>
</html>
session對(duì)象是在JSP文件編譯之后創(chuàng)建的,如下圖所示:
application對(duì)象,其實(shí)就是我們之前學(xué)習(xí)的ServletContext上下文對(duì)象,只不過在JSP里面,它將這個(gè)變量名稱定義成了application,用法和ServletContext上下文對(duì)象是一致的。
案例代碼:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP內(nèi)置對(duì)象application</title>
</head>
<body>
<h3>JSP內(nèi)置對(duì)象application</h3>
<%
// 在JSP里面,可以直接使用 application 這個(gè)內(nèi)置對(duì)象進(jìn)行操作
application.setAttribute("username", "IDEA");
%>
</body>
</html>
這一小節(jié)就先介紹前4個(gè)內(nèi)置對(duì)象的使用。
今天就到這里,未完待續(xù)~~
家好,我是IT共享者,人稱皮皮。
相信做網(wǎng)站對(duì)JavaScript再熟悉不過了,它是一門腳本語言,不同于Python的是,它是一門瀏覽器腳本語言,而Python則是服務(wù)器腳本語言,我們不光要會(huì)Python,還要會(huì)JavaScript,因?yàn)樗鼘?duì)做網(wǎng)頁方面是有很大作用的。
這是我們用的最普遍的一個(gè)文檔對(duì)象了,專門用來操作DOM節(jié)點(diǎn)時(shí)用。
document.getElementById() #通過id查找HTML元素
document.getElementsByName() #通過name查找HTML元素
document.getElementsByTagName() #通過標(biāo)簽名查找HTML元素
document.getElementsByClassName() #通過類名查找HTML元素
document.querySelector(".h") #第一個(gè)類名為 "h" 的元素
document.querySelectorAll("div.no, div#h") #所有class為"no"或者id為"h"的div元素
document.body #獲取body標(biāo)簽
document.documentElement #獲取html標(biāo)簽
document.cookie #網(wǎng)頁cookie
document.domain #文檔的域名
document.lastModified #文檔被最后修改的日期和時(shí)間
document.referrer #載入當(dāng)前文檔的文檔的URL
document.title #當(dāng)前文檔的標(biāo)題
document.URL #當(dāng)前文檔的URL
document.doctype #當(dāng)前文檔的doctype
document.baseURI #當(dāng)前文檔的絕對(duì)URI
document.documentMode #瀏覽器使用的模式
document.documentURI #文檔的URI
document.implementation #DOM實(shí)現(xiàn)
document.inputEncoding #文檔的編碼(字符集)
document.readyState #文檔的(加載)狀態(tài)
document.strictErrorChecking #是否強(qiáng)制執(zhí)行錯(cuò)誤檢查
document.write('hello world') 向文檔寫入文本
document.writeln('hello world') 向文檔寫入文本并換行
document.all #所有html元素
document.anchors #所有Anchor引用
document.forms #所有的表單引用
document.images #所有的圖片引用
document.links #所有的超鏈接引用
document.scripts #所有的腳本引用
document.embeds #所有的流媒體引用
childNodes #獲取子節(jié)點(diǎn)的集合 ,返回?cái)?shù)組 ,并把換行和空格也當(dāng)成是節(jié)點(diǎn)信息。
children #獲取子節(jié)點(diǎn)的集合 ,返回?cái)?shù)組
firstChild #獲取第一個(gè)子元素 并把換行和空格也當(dāng)成是節(jié)點(diǎn)信息
firstElementChild #獲取第一個(gè)子節(jié)點(diǎn)
lastChild #獲取最后一個(gè)子節(jié)點(diǎn) 并把換行和空格也當(dāng)成是節(jié)點(diǎn)信息
lastElementChild #獲取最后一個(gè)子節(jié)點(diǎn)
parentNode #獲取父節(jié)點(diǎn)
parentElement #獲取父節(jié)點(diǎn)(IE)
offsetParent #獲取所有父節(jié)點(diǎn) 對(duì)應(yīng)的值是body下的所有節(jié)點(diǎn)信息
previousSibling #獲取上一個(gè)兄弟節(jié)點(diǎn) 匹配字符,包括換行和空格,而不是節(jié)點(diǎn)
previousElementSibling #獲取上一個(gè)兄弟節(jié)點(diǎn) 直接匹配節(jié)點(diǎn)
nextSibling #獲取下一個(gè)兄弟節(jié)點(diǎn) 匹配字符,包括換行和空格,而不是節(jié)點(diǎn)
nextElementSibling #獲取下一個(gè)兄弟節(jié)點(diǎn) 直接匹配節(jié)點(diǎn)
ownerDocument #元素的根節(jié)點(diǎn)
這里我們獲取到了所有的Div元素,我們可以針對(duì)性的獲取一個(gè)ID下的Div的子元素以及它的兄弟和父,子元素,如下:
我們可以自定義節(jié)點(diǎn)并添加值,不過要將它添加到文檔中去,所以必須添加節(jié)點(diǎn),一般和下方的增加節(jié)點(diǎn)配套使用。
document.createElement(標(biāo)簽) #創(chuàng)建HTML元素
document.createTextNode(文本) #給文檔添加文本
document.createComment(文本) #創(chuàng)建一個(gè)注釋節(jié)點(diǎn)
document.createDocumentFragment() #創(chuàng)建文檔粉碎節(jié)點(diǎn)
appendChild(節(jié)點(diǎn)) #節(jié)點(diǎn)被添加到元素的末尾
insertBefore(a,b) #a節(jié)點(diǎn)會(huì)插入b節(jié)點(diǎn)的前面
removeChild(節(jié)點(diǎn)名) #被移除的節(jié)點(diǎn)仍在文檔中,只是文檔中已沒有其位置了
replaceChild(插入的節(jié)點(diǎn),被替換的節(jié)點(diǎn))
a.cloneChild() #復(fù)制a節(jié)點(diǎn),復(fù)制出來的節(jié)點(diǎn)作為返回值為true時(shí),則a元素后代也一并復(fù)制。否則,僅復(fù)制a元素本身
#節(jié)點(diǎn)類型 nodeType 有三種情況
#1.元素節(jié)點(diǎn) 2.屬性節(jié)點(diǎn) 3.文本節(jié)點(diǎn)
#節(jié)點(diǎn)名稱 nodeName
#節(jié)點(diǎn)值 nodeValue
#元素節(jié)點(diǎn)沒節(jié)點(diǎn)值,為null
#文本節(jié)點(diǎn)的節(jié)點(diǎn)值就是文本
#屬性節(jié)點(diǎn)的節(jié)點(diǎn)值就是該屬性值
#節(jié)點(diǎn)屬性獲取
a.width
a['width']
a.gerAttribute(屬性名) 返回指定的屬性值
a.gerAttributeNode(屬性名) 返回指定的屬性節(jié)點(diǎn)
節(jié)點(diǎn)屬性設(shè)置
a.width=400
a['width']=400
a.attributes['width']=400
a.setAttribute('width',400) 添加指定的屬性
a.setAttributeNode(b) 添加指定的屬性節(jié)點(diǎn)
#節(jié)點(diǎn)屬性刪除
a.removeChild(子節(jié)點(diǎn)) 從元素中移除子節(jié)點(diǎn)
a.removeAttribute(屬性) 從元素中移除指定屬性
a.removeAttributeNode(屬性) 移除指定的屬性節(jié)點(diǎn),并返回被移除的節(jié)點(diǎn)
a.id 獲取當(dāng)前元素的id
a.className 獲取當(dāng)前元素的class
a.classList 獲取當(dāng)前元素的class列表
a.accessKey='w' 設(shè)置或返回元素的快捷鍵
a.namespaceURI 返回指定節(jié)點(diǎn)的命名空間的 URI
a.dir 設(shè)置或返回元素的內(nèi)容是否可編輯
a.normalize() 合并元素中相鄰的文本節(jié)點(diǎn),并移除空的文本節(jié)點(diǎn)
a.tabIndex='3' 設(shè)置或返回元素的tab鍵控制次序
a.tagName 返回元素的標(biāo)簽名
a.textContent 設(shè)置或返回節(jié)點(diǎn)及其子代的文本內(nèi)容
a.title 設(shè)置或返回元素的標(biāo)題屬性
a.item(num) 返回節(jié)點(diǎn)列表中位于指定下標(biāo)的節(jié)點(diǎn)
a.length 返回節(jié)點(diǎn)列表中的節(jié)點(diǎn)數(shù)
a.innerHTML 獲取或者設(shè)置對(duì)象內(nèi)的HTML
a.innerText 獲取或者設(shè)置對(duì)象內(nèi)的文本
a.outerHTML 獲取或者設(shè)置對(duì)象外的HTML
a.outerText 獲取或者設(shè)置對(duì)象外的文本
a.value 獲取或者設(shè)置表單元素的值
這篇文章主要介紹了JavaScript的文檔對(duì)象。下一篇文章,我們繼續(xù)介紹JavaScript,敬請(qǐng)期待!
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。