Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head>
<body id="body">
<h1>Facade Pattern</h1>
<form action="server.php" method="post" id="f">
<input type="text" name="t" value="" />
<input type="submit" name="submit" value="it ain't submit man" id="submit" />
</form>
[url="http://www.google.com"]it ain't work man![/url]
<script type="text/javascript">
/*
il facade pattern serve, lo dice il nome stesso, a creare una facciata che migliori
e velocizzi la gestione di routine relative ad un certo aspetto della programmazione
JavaScript (spesso relativa ai browser). Per esempio la gestione di questioni cross-browser
e' la tipica situazione dove il facade pattern puo' tornare utile.
*/
// gestione differenze relative all'oggetto e (interfaccia evento)
// usando il facade pattern
var Ev = {
getEvent: function(e){
// w3c or IE
return e || window.event;
},
getTarget: function(e){
// w3c or IE
return e.target || e.srcElement;
},
preventDefault: function(e){
if(e.preventDefault){
// w3c interface
e.preventDefault();
}
else{
// IE model
e.returnValue = false;
}
},
exec: function(e, method){
return Ev[method].call(Ev, Ev.getEvent(e))
}
}
document.getElementById("f").onsubmit = function(e){
Ev.exec(e, "preventDefault");
}
document.getElementById("gl").onclick = function(e){
Ev.exec(e, "preventDefault");
var el = Ev.exec(e, "getTarget");
alert("tag: " + el.tagName + " || id: " + el.id);
}
</script>
</body>
</html>
Ti eri scordato un return.
In exec ho preferito usare Ev al posto
di this che nel contesto per me a poco senso.