JavaScript DOM程式設計藝術(第2版)第七章 動態建立標記
阿新 • • 發佈:2018-12-21
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload !='function'){
window.onload = func;
} else {
window.onload = function () {
oldonload();
func();
}
}
}
function insertAfter(newElement,targetElement) {
var parent = targetElement.parentNode;
if (parent.lastChild==targetElement){
parent.appendChild(newElement);
} else {
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
function preparePlaceholder () {
if (!document.createElement) return false;
if (!document.createTextNode) return false;
if (!document.getElementById) return false;
if (!document.getElementById("imagegallery")) return false;
var placeholder = document.createElement("img");
placeholder. setAttribute("id","placeholder");
placeholder.setAttribute("src","../img/timeqq.png");
placeholder.setAttribute("alt","my image gallery");
var description = document.createElement("p");
description.setAttribute("id","description");
var desctext = document.createTextNode("Choose an image");
description.appendChild(desctext);
var gallery = document.getElementById("imagegallery");
insertAfter(placeholder,gallery);//圖片placeholder插到gallery後面
insertAfter(description,placeholder);//文字description插到placeholder後面
}
function prepareGallery() {
if (!document.getElementsByTagName) return false;
if (!document.getElementById) return false;
if (!document.getElementById("imagegallery")) return false;
var gallery = document.getElementById("imagegallery");
var links = gallery.getElementsByTagName("a");
for (var i=0;i<links.length;i++){
links[i].onclick = function () {
return showPic(this);
}
links[i].onkeypress=links[i].onclick;
}
}
function showPic(whichpic) {
if (!document.getElementById("placeholder")) return true;
var source = whichpic.getAttribute("href");
var placeholder = document.getElementById("placeholder");
placeholder.setAttribute("src", source);
if (!document.getElementById("description")) return false;
if (whichpic.getAttribute("title")) {
var text = whichpic.getAttribute("title");
} else {
var text = "";
}
//用一個變數存放description的文字p
var description = document.getElementById("description");
if (description.firstChild.nodeType == 3) {//nodeType屬性檢查返回一個大寫字母的值
//把連結title傳給text變數
description.firstChild.nodeValue = text;
}
return false;
}
addLoadEvent(prepareGallery);
addLoadEvent(preparePlaceholder);