Rolando Garza El blog de rolandog

19Mar/062

This is the post that says ‘Ni’!

Pues... ayer estuvo conmadre... en la tarde, el Alex y yo vimos la de 'Monty Python and the Holy Grail'. No me había carcageado tanto. En la noche, se hizo hamburguesada en casa del Rober. Fue todo improvisado, pero salió conmadre. Hubo vino, chelas y cocas.

Ahorita que ando agregando el 'del.icio.us playtagger' a este blog, estoy poniéndolo a prueba con un pequeño extracto de audio de la película que vimos ayer. Conseguí unos 'clips de Monty Python' (de la parte en la que salen los "Knights who say 'Ni'").

"Ni!"
"Ekky-ekky-ekky-ekky-z'Bang, zoom-Boing, z'nourrrwringmm... Ni."

Vaya, que lata... unas cuantas horas después logré hacerlo funcionar...
chéquense esto...

Comparen estos dos códigos (el de del.icio.us contra mi xhtmlplaytagger)... el problema es que el método de innerHTML no funciona para documentos tipo XHTML... y lo extraño es que tampoo
(los pondré en el resto del post... por si quieren leerlos).

El playtagger de del.icio.us es:

if(typeof(Delicious) == 'undefined') Delicious = {}
Delicious.Mp3 = {
playimg: null,
player: null,
go: function() {
var all = document.getElementsByTagName('a')
for (var i = 0, o; o = all[i]; i++) {
if(o.href.match(/\.mp3$/i)) {
var img = document.createElement('img')
img.src = 'http://del.icio.us/static/img/mp3/play.gif'; img.title = 'listen'
img.height = img.width = 12
img.style.marginRight = '0.5em'
img.style.cursor = 'pointer'
img.onclick = Delicious.Mp3.makeToggle(img, o.href)
o.parentNode.insertBefore(img, o)
}}},
toggle: function(img, url) {
if (Delicious.Mp3.playimg == img) Delicious.Mp3.destroy()
else {
if (Delicious.Mp3.playimg) Delicious.Mp3.destroy()
img.src = 'http://del.icio.us/static/img/mp3/stop.gif'; Delicious.Mp3.playimg = img;
Delicious.Mp3.player = document.createElement('span')
Delicious.Mp3.player.innerHTML = '<object style="vertical-align:bottom" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"' +
'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"' +
'width="100" height="14" id="player" align="middle">' +
'<param name="allowScriptAccess" value="sameDomain" />' +
'<param name="flashVars" value="theLink='+url+'" />' +
'<param name="movie" value="http://test.dev.del.icio.us/static/swf/playtagger.swf" /><param name="quality" value="high" />' +
'<param name="bgcolor" value="#ffffff" />' +
'<embed style="vertical-align:bottom" src="http://test.dev.del.icio.us/static/swf/playtagger.swf" flashVars="theLink='+url+'"'+
'quality="high" bgcolor="#ffffff" width="100" height="14" name="player"' +
'align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"' +
' pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>'
img.parentNode.insertBefore(Delicious.Mp3.player, img.nextSibling)
}},
destroy: function() {
Delicious.Mp3.playimg.src = 'http://del.icio.us/static/img/mp3/play.gif'; Delicious.Mp3.playimg = null
Delicious.Mp3.player.removeChild(Delicious.Mp3.player.firstChild); Delicious.Mp3.player.parentNode.removeChild(Delicious.Mp3.player); Delicious.Mp3.player = null
},
makeToggle: function(img, url) { return function(){ Delicious.Mp3.toggle(img, url) }}
}

Delicious.addLoadEvent = function(f) { var old = window.onload
if (typeof old != 'function') window.onload = f
else { window.onload = function() { old(); f() }}
}

Delicious.addLoadEvent(Delicious.Mp3.go)

Mi modificación (que sería la versión compatible con XHTML):

var Delicious;
if(typeof(Delicious) == 'undefined') {Delicious = {};}
Delicious.Mp3 = {
playimg: null,
player: null,
go: function() {
var all = document.getElementsByTagName('a');
if(all) {
for (var i = 0; i < all.length; ++i) {
var o = all[i];
if(o.href.match(/\.mp3$/i)) {
var img = document.createElement('img');
img.src = 'http://del.icio.us/static/img/mp3/play.gif'; img.title = 'listen'; img.alt = '.';
img.height = img.width = 12;
img.style.marginRight = '0.5em';
img.style.cursor = 'pointer';
img.onclick = Delicious.Mp3.makeToggle(img, o.href);
o.parentNode.insertBefore(img, o);
}}}},
toggle: function(img, url) {
if (Delicious.Mp3.playimg == img) {Delicious.Mp3.destroy();}
else {
if (Delicious.Mp3.playimg) {Delicious.Mp3.destroy();}
img.src = 'http://del.icio.us/static/img/mp3/stop.gif'; Delicious.Mp3.playimg = img;
Delicious.Mp3.player = document.createElement('span');
Delicious.Mp3.player.setAttribute("id", "delicious");
var tempobj = document.createElement('object');
tempobj.setAttribute("id", "player");
tempobj.setAttribute("type", "application/x-shockwave-flash");
tempobj.setAttribute("data", "http://del.icio.us/static/swf/playtagger.swf");
tempobj.setAttribute("style", "vertical-align:bottom;");
tempobj.setAttribute("classid", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
tempobj.setAttribute("codebase", "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0");
tempobj.setAttribute("width", 100);
tempobj.setAttribute("height", 14);
var param0 = document.createElement('param');
var param1 = document.createElement('param');
var param2 = document.createElement('param');
var param3 = document.createElement('param');
var param4 = document.createElement('param');
var embed0 = document.createElement('embed');
param0.setAttribute("name", "allowScriptAccess");
param0.setAttribute("value", "always");
param1.setAttribute("name", "flashVars");
var tlu = "theLink=" + url;
param1.setAttribute("value", tlu);
param2.setAttribute("name", "movie");
param2.setAttribute("value", "http://del.icio.us/static/swf/playtagger.swf");
param3.setAttribute("name", "quality");
param3.setAttribute("value", "high");
param4.setAttribute("name", "bgcolor");
param4.setAttribute("value", "#ffffff");
embed0.setAttribute("style", "vertical-align:bottom;");
embed0.setAttribute("src", "http://del.icio.us/static/swf/playtagger.swf");
embed0.setAttribute("flashVars", tlu);
embed0.setAttribute("quality", "high");
embed0.setAttribute("bgcolor", "#ffffff");
embed0.setAttribute("width", 100);
embed0.setAttribute("height", 14);
embed0.setAttribute("name", "player");
embed0.setAttribute("allowScriptAccess", "always");
embed0.setAttribute("type", "application/x-shockwave-flash");
embed0.setAttribute("pluginspage", "http://www.macromedia.com/go/getflashplayer");
tempobj.appendChild(param0);
tempobj.appendChild(param1);
tempobj.appendChild(param2);
tempobj.appendChild(param3);
tempobj.appendChild(param4);
tempobj.appendChild(embed0);
Delicious.Mp3.player.appendChild(tempobj);
img.parentNode.insertBefore(Delicious.Mp3.player, img.nextSibling);
}},
destroy: function() {
Delicious.Mp3.playimg.src = 'http://del.icio.us/static/img/mp3/play.gif'; Delicious.Mp3.playimg = null;
Delicious.Mp3.player.removeChild(Delicious.Mp3.player.firstChild); Delicious.Mp3.player.parentNode.removeChild(Delicious.Mp3.player); Delicious.Mp3.player = null;
},
makeToggle: function(img, url) { return function(){ Delicious.Mp3.toggle(img, url); };}
};

Delicious.addLoadEvent = function(f) { var old = window.onload;
if (typeof old != 'function') {window.onload = f;}
else { window.onload = function() { old(); f(); };}
};

Delicious.addLoadEvent(Delicious.Mp3.go);

About Rolando Garza

Rolando Garza is a Chemical Engineer that enjoys writing, programming, life, savate, playing basketball with his girlfriend and working as a Resin Engineer in ICASA.
Filed under: Posts Leave a comment
Comments (2) Trackbacks (0)
  1. We want… a shrubbery!!!

  2. jajaja
    A huevo Perea! Tu si sabes que pedo… :-D


Leave a comment


No trackbacks yet.