actually i found something in html5. its very quirky but...
var reader = new FileReader();
function readText(){
reader.readAsText(document.getElementById("file1").files[0]);
document.getElementById('main').innerHTML=reader.result;
}
<input id="file1" type="file" onChange='readText()' />
there's issues with the reader.result. here it works fine, but in other cases reader.result has returned null when called right after the readAsText function. so putting w/e instruction that calls reader.result into a setTimeout("instr", 10); would solve the issue.
Now i just wonder why it wont work in chrome. I've analyzed stuff and i can see chrome is fully compatible with the FileSystem object and the element.files[0]. I can't figure out why chrome always forget passing the value from readAsText into the reader.result value. reader.result just remains blank. urghh