the internet as platform
-- Tim O'Reilly
Figura retirada do artigo Ajax: A New Approach to Web Applications de Jesse James Garrett
Figura retirada do artigo Ajax: A New Approach to Web Applications de Jesse James Garrett
Figura retirada do artigo Ajax: A New Approach to Web Applications de Jesse James Garrett
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<title>XHTML básico</title>
</head>
<body>
<p>
Hello World!
</p>
</body>
</html>
<ol>
<li>
Dresden Dolls -
Coin-Operated Boy
</li>
<li>
Suburbian Kids With Biblical Names -
Trumpets and Violins
</li>
</ol>
<ol class="track-list">
<li class="track">
<span class="track-creator">Dresden Dolls</span> -
<span class="track-title">Coin-Operated Boy</span>
</li>
<li class="track">
<span class="track-creator">Suburbian Kids With Biblical Names</span> -
<span class="track-title">Trumpets and Violins</span>
</li>
</ol>
<link rel="stylesheet" href="playlist.css" type="text/css" title="Winamp" />
ol{
border: thin solid red;
}
li:hover{
background: Blue;
}
function applyZebra(list_element){
var ol_ar = document.getElementsByTagName('ol'); //todas as listas ordenadas
for(var i in ol_ar){
if(ol_ar[i].className=="track-list"){ //se a lista ordenada é da classe track-list
var li_ar = ol_ar[i].getElementsByTagName('li') //pega todos os itens desta lista
var cont = 1;
for(var j in li_ar){
if(cont++%2){ //testa para ver se é impar
li_ar[j].className = 'impar'
}else{
li_ar[j].className = 'par'
}
}
}
}
}
function addTrack(p_tracklist_id,p_autor,p_title){
//text nodes
var creator_text_node = document.createTextNode(p_autor)
var title_text_node = document.createTextNode(p_title)
var separator_text_node = document.createTextNode(' - ')
//span elements
var track_creator_element = document.createElement('span')
var track_title_element = document.createElement('span')
track_creator_element.appendChild(creator_text_node)
track_title_element.appendChild(title_text_node)
//li element
var track_element = document.createElement('li')
track_element.appendChild(track_creator_element)
track_element.appendChild(separator_text_node)
track_element.appendChild(track_title_element)
//ol element
var tracklist_element = document.getElementById(p_tracklist_id);
tracklist_element.appendChild(track_element)
//classnames
track_creator_element.className = "track-creator";
track_title_element.className = "track-title";
if(tracklist_element.getElementsByTagName('li').length%2){
track_element.className = "impar"
}else{
track_element.className = "par"
}
//form submit dont leave the page
return false;
}
req = new XMLHttpRequest();
req.open('GET', 'http://ws.audioscrobbler.com/1.0/user/fczuardi/topartists.xml', true);
req.onreadystatechange = function () {
//mudou de estado: 0 = uninitialized, 1 = loading, 2 = loaded, 3 = interactive, 4 = complete
if (req.readyState == 4) {
if(req.status == 200){
//carregou
}else{
alert("Error loading page\n");
}
};
req.send(null);
}
// Firefox, Safari, etc
if(window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
} catch(e) {
req = false;
}
// IE/Windows
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}
if(window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}