window對象(彈窗)
JavaScript使用window對象的open()方法來創(chuàng)建新的瀏覽器窗口彼妻。這個方法有三個參數window.open(url,name,features)
- url:在新的窗口里打開的網頁的URL地址坦弟,如果為空了牛,則現實空白窗口偷办。
- name:新窗口的名字谍婉。可以在代碼里通過這個名字與新窗口進行通信.
- features:新窗口的屬性,包括新窗口的尺寸和瀏覽功能等。對于這個參數應該掌握以下原則:新窗口的瀏覽功能要少而精
例如:
function myOnclick(url){
window.open(url,"這是百度首頁","width='500px,height='500px''");
}
分離JavaScript
把javascript代碼調用行為與HTML文檔的結構和內容費力柠贤,網頁就會健壯很多。當然如果這些腳本語言在head中<script>調用的話不用“window.onload”判斷也無妨类缤,但在其他地方加載腳本語言的話臼勉,“l(fā)ink=document.getElementsByTagName("a"); ”將會第一時間調用,那么就會出錯餐弱,因為那時候網頁還沒有完全加載坚俗。
function myOnclick(is){ //要執(zhí)行的方法
var href=is.getAttribute("href");
var img=document.getElementById("picture");
img.setAttribute("src",href);
var des=is.childNodes[0].nodeValue;
var desc=document.getElementById("description");
desc.childNodes[0].nodeValue=des;
}
window.onload=prepareLinks; //當網頁所有的元素加載完成后所觸發(fā)的事件,并把它打包成一個prepareLinks函數
function prepareLinks(){
var link=document.getElementsByTagName("a"); //獲取標記為<a>的標簽數組
for(var i=0;i<link.length;i++){
if(link[i].getAttribute("class")=="pupup"){ //判斷標簽的clss是不是“pupup”
link[i].onclick=function(){ //執(zhí)行方法
myOnclick(this);
return false; //讓原來的超鏈接失效
}
}
}
}
向后兼容
-
對象檢測
檢測瀏覽器對javascript的支持程度
//例如檢測瀏覽器是否支持document.getElementById;
if(document.getElementById){
alert("此瀏覽器支持document.getElementById");
}
-
瀏覽器嗅探技術
差不多被對象檢測技術取代岸裙,僅供了解即可猖败。
性能考慮
很多人會忽視腳本對Web應用整體性能的影響,為保證應用流暢地運行降允,在為文檔編寫和腳本時恩闻,需要注意一些問題
-
盡量少訪問DOM和盡量減少標記
訪問DOM的方式對腳本性能會產生非常大的影響。
-
合并和放置腳本
包含腳本的最佳方式是使用外部文件剧董,因為外部文件和標記能清晰地分離開幢尚,而且瀏覽器也能對站點中的多個頁面重用還存過的相同腳本。
-
壓縮腳本
所謂壓縮腳本翅楼,指的是把腳本文件中不必要的字節(jié)尉剩,如空格和注釋,統(tǒng)統(tǒng)刪除毅臊,從來達到“壓縮”文件的目的(有很多工具能夠替你來做這件事)理茎。一般我們有兩個文件,一個是工作副本管嬉,可以修改代碼并添加注釋皂林;另一個個是精簡副本,用于放在站點上蚯撩,通常為了區(qū)分础倍,最好在精簡版的文件名中加上main字樣;例如:
<script src="scripts/scriptName.min.js"></script>