run |
self.Lister = new function(){ with(document){
var _sharedcss = 'color: menutext; background-color:menu';
var _div = createElement('div');
_div.style.cssText = [
'position: absolute; z-Index:999; left: 0px',
'top:'+ Math.max(body.scrollTop, documentElement.scrollTop) +'px',
'padding: 5px', _sharedcss].join(';');
var _ifr = createElement('iframe');
_ifr.style.cssText = 'display: none; '+ _sharedcss;
return {
show: function(bmls){ var n, a;
for(n in bmls) if(bmls.hasOwnProperty(n)){
a = createElement('a');
a.href = 'javascript:Lister.load('+ n +')';
_div.appendChild(a).innerHTML = bmls[n];
_div.appendChild(createTextNode(' '));
}
var b = createElement('button');
b.innerHTML = 'x';
b.style.cssText = [
'vertical-align: middle; border: none',
'padding-left: 5px', _sharedcss].join(';');
_div.appendChild(b).onclick = function(){ body.removeChild(_div) };
_div.appendChild(createElement('br'));
body.appendChild(_div).appendChild(_ifr);
},
load: function(id){
var s = createElement('script');
s.src = 'http://wedata.net/items/'+ id + '.json?callback=Lister.run';
body.appendChild(s);
},
run: function(o){
var p = self.open;
self.open = this.open;
with(self) eval(o.data.run);
self.open = p;
},
open: function(url, nam, opt){ with(_ifr){
var m;
m = /width=(\d+)/.exec(opt);
if(m) width = +m[1];
m = /height=(\d+)/.exec(opt);
if(m) height = +m[1];
src = url;
style.display = 'block';
}}
}
}} |
sample |
javascript:({id:2272,list:{2270:'Eijiro',2271:'delicious',2275:'Hatebu'},d:document,f:'_f',_:function(s){with(this){self[f+=id]=function(o){eval(o.data.run).show(list)};s=d.createElement('script');s.src='http://wedata.net/items/'+id+'.json?callback='+f;d.body.appendChild(s)}}}._()) |