こんなんできた。
function trythese() { var returnValue; for (var i = 0, length = arguments.length; i < length; i++) { var lambda = arguments[i]; try { returnValue = lambda(); break; } catch (e) {} } return returnValue; } function AjaxUpdater(id, url) { var transport = trythese( function() {return new XMLHttpRequest()}, function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')} ); if (transport) { transport.onreadystatechange = function() { if ((transport.readyState == 4) && (transport.status == 200)) { document.getElementById(id).innerHTML=transport.responseText; } } transport.open("GET",url,true); transport.send(null); } }
といってもprototype.js参考にしまくりですが・・・
new AjaxUpdater('hoge', 'foo?bar');
とかやったらfoo?bar の結果をid="hoge" のinnerHTMLにこりこんでくれます。