приведу кусок решения.
открытия файла работает в Мозиле, и не работает в ИЕ.
Сохранения файла работает в Мозиле, в других пока непроверял.
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>my</title>
<script type="text/javascript">
function newShader(){
document.getElementById("textEditor").innerHTML=document.getElementById("fil")['files'][0].getAsBinary();}
function newFil(){
return document.getElementById("textEditor").innerHTML;}
</script>
</head>
<body>
<input type="file" name="file" id="fil" value="">
<input type="button" value="открыть" onClick="newShader()">
<a href="javascript:newFil()" type="multipart/form-data">Сохранить файл</a>
<textarea id="textEditor" style="width:900;height:900;" spellcheck="false"></textarea><br>
</body>
</html>
При сохранении, с атрибутами надо ещё разбиратся, и при сохранение файлу по умолчанию ставится тип .part Тоесть неполный файл, так что пока вручную вводить имя надо. Возможное решение вставить в конец текста код конца файла пока непроверял.