Oh versione Unobtrusive Javascript e penso
cross-browser :
Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript" type="text/JavaScript">
function DOMize(element)
{
if(!element.addEventListener)
{
element.addEventListener=function(event,listener)
{
event="on"+event;
if(this.attachEvent)
{
this.attachEvent(event,listener);
}
else
{
this[event]=listener;
}
}
};
if(!element.removeEventListener)
{
element.removeEventListener=function(event,listener)
{
event="on"+event;
if(this.detachEvent)
{
this.detachEvent(event,listener);
}
else
{
delete this[event];
}
}
};
return element;
};
function displayInfo()
{
var sel = document.getElementsByTagName("select")[0];
var whatinfo = sel.options[sel.selectedIndex].value;
if(test = document.getElementById("paragraph")) {
document.body.removeChild(test);
}
var info = document.createElement("p");
info.setAttribute("id", "paragraph");
switch(whatinfo){
case "attributes":
var text = document.createTextNode("You have getAttribute and setAttribute. getAttribute takes one argument, setAttribute takes two.");
break;
case "tree":
var text = document.createTextNode("There are two functions: getElementsByTagName, which returns an array, and getElementById, which returns a single element based on the id attribute.");
break;
case "god":
var text = document.createTextNode("There are many functions. createElement, appendChild, insertBefore, createTextNode, and removeChild.");
break;
}
info.appendChild(text);
document.body.appendChild(info);
}
window.onload = function()
{
var sel = document.getElementsByTagName("select")[0];
DOMize(sel).addEventListener("change",displayInfo, false);
}
</script>
</head>
<body>
<form action="formaction" method="post">
Methods in the DOM:
<select name="selection">
<option value="attributes">Attributes</option>
<option value="tree">Traversing the Tree</option>
<option value="god">ting and destroying nodes</option>
</select>
</form>
</body>
</html>
un grazie ad andr3a per la function DOMize.
Ulteriori migliorie sono ben accette.
Sappimi dire.