又是一個兩天,javaScript,學習了基本的一點點內容,下面就當作一個複習吧。
在 HTML 頁面中插入 JavaScript,使用 <script> 標籤。<script> 和 </script> 會告訴 JavaScript 在何處開始和結束, 他們之間的代碼行包含了 JavaScript。從 JavaScript 訪問某個 HTML 元素,我們使用 document.getElementById(id) 方法,比如下面一個例子:
<html> <body> <h1>My First Web Page</h1> <p id="demo">My First Paragraph</p> <script> document.getElementById("demo").innerHTML="My First JavaScript"; </script> </body> </html>
本來會輸出My First Paragraph,使用了innerHTML改變了輸出內容,變成了My First JavaScript。
在<script> 和 </script>標籤中也可以直接輸出HTML內容,用下面這個方法:
< script > document.write("< p >html語言</ p >"); </ script > |
還有比較重要的是javascript的對象,但是這兩天我沒有遇到,就沒有看,等以後需要用的時候再來看。還有重要的,也是這兩天練習得最多的就是HTML DOM 事件了。像下面的代碼:
<html> <body> <h1 onclick="this.innerHTML='謝謝!'">請點擊該文本</h1> </body> </html>
瀏覽器中會出現“點擊該文本”,點擊之後,也就觸發了該點擊事件,會執行相應的代碼,瀏覽器中的內容會變成“謝謝!”
也可以把上面的"this.innerHTML='謝謝!'"改成一個函數,當我們點擊觸發事件時,會執行相應的函數,就像下面這樣子:
<html> <head> <script> function changetext(id) { id.innerHTML="謝謝!"; } </script> </head> <body> <h1 onclick="changetext(this)">請點擊該文本</h1> </body> </html>
點擊之後,會調用changetext()函數,當然,你可以把函數定義在別的一個地方,但是肯定需要使用<script> 和 </script>。
下面這代碼是像按鈕分配事件,
<html> <head> </head> <body> <p>點擊按鈕就可以執行 <em>displayDate()</em> 函數。</p> <button id="myBtn">點擊這裏</button> <script> document.getElementById("myBtn").onclick=function(){displayDate()}; function displayDate() { document.getElementById("demo").innerHTML=Date(); } </script> <p id="demo"></p> </body> </html>
把事件給button上面,當我們點擊時,觸發相應事件,調用對應的函數。
當天下午寫了一個ajax的hello world程序,我承認自己智商太不夠用了。爲了讀取本地的hello world文件花了幾個小時的時間都沒有搞定,現在看看電影,然後來梳理一下當時的情況。當時在桌面寫了兩個文件,一個html文件,一個xml文件,我的xml是如下這樣:
<?xml version="1.0" encoding="UTF-8"?> <HelloWorld> <data> 我是後臺的HelloWorld! </data> </HelloWorld>
,然後html文件如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> var xmlHttp; function createXmlHttpRequest() { if(window.ActiveXObject)//針對IE瀏覽器 { try{ xmlHttp = new ActiveXObject("Microsoft.XMLHttp");//針對IE高版本 } catch(e){ xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");//針對IE低版本 } } else if(window.XMLHttpRequest)//針對非IE瀏覽器 { xmlHttp = new XMLHttpRequest(); } xmlHttp.onreadystatechange = function() { //讀取服務器的狀態 if(xmlHttp.readyState == 4) { //判斷服務器狀態碼,如果服務器端沒有錯誤返回200 if(xmlHttp.status == 200) { var div = document.getElementById("div1"); //接收服務器響應的xml文檔 var xmlDoc = xmlHttp.responseXML; //解析服務器響應的XML文檔 var data = xmlDoc.getElementsByTagName("data")[0].firstChild.nodeValue; div.innerHTML = "<b>"+data+"</b>"; } } }; xmlHttp.open("GET","http://localhost/HelloWorld.xml",true); xmlHttp.send(); // document.getElementById("div1").innerHTML="test"; } </script> </head> <body> <div align="center" id="div1" style="width:100%"></div> <div align="center" style="width:100%"> <input type="button" value="Hello World" id="btnRequest" onclick="createXmlHttpRequest()"> </div> </body> </html>
我當時的做法是把他們放在同文件夾下面。雙擊html文件之後,點擊瀏覽器的按鈕,我以爲會順利的出現hello world。結果,我嘗試了千遍百遍,無論我怎麼點擊,都沒有反應。用Firebug查看,html連請求包都沒有發出去。但奇怪的是,要是我是請求網上的某一個文件,可以順利的輸出。折騰了好久,無奈之下,把他們放在了tomact服務器下面,結果,順利的輸出。之後網上尋找原因,是應爲js能請求本地文件,一定要去服務器請求,好像就是這樣。希望可以幫助到和我遇到同樣煩惱的問題!
轉於博客園,奇米影視