2010-07-13 4 views
-2

Dans le code ci-dessous comment puis-je le faire charger le fichier dans une zone de texte où textarea path est parent.a.frame_name1. document.form_name1.textarea_name1html codes du fichier html externe dans textarea (tout professionnel en active-x ou javascript m'aide)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Language" content="en-us"> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Local File I/O</title> 
<script type="text/javascript"> 
<!-- // Begin 
var ForReading = 1, 
    ForWriting = 2, 
    ForAppending = 8; 
var objFSO = new ActiveXObject("Scripting.FileSystemObject"); 

function checkText(fld, btn) { 
    btn.disabled = false; 
    fld.onkeypress = null; 
    return true; 
} 

function checkFile(obj, div, btn, btn2, fld) { 
    div.innerHTML = '<p><b>File:</b><br><b>Size:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Last Modified:</b></p>'; 
    btn.disabled = true; 
    btn2.disabled = true; 
    fld.value = ''; 
    fld.onkeypress = new Function("return checkText(" + "document." + fld.form.name + "." + fld.name + "," + "document." + btn2.form.name + "." + btn2.name + ")"); 
    // 
    // if (obj.value.indexOf(":") != 1) { 
    // alert("Local file name must include a drive letter."); 
    // return false; 
    // } 
    var ary = obj.value.split("\\"); 
    if (ary.length < 2) { 
     alert("Local file name must include a path."); 
     return false; 
    } 
    if (!/(\.txt)$/i.test(obj.value)) { 
     alert("Local file name must include the '.txt' extension."); 
     return false; 
    } 
    // 
    try { 
     objFile = objFSO.GetFile(obj.value); 
    } catch (e) { 
     if (e.message != "File not found") { 
      alert(e.message); 
      return false; 
     } else { 
      try { 
       if (confirm(obj.value + "\n" + "does not exist. Click 'Ok' to create it.")) { 
        objFile = objFSO.CreateTextFile(obj.value); 
        objFile.Close(); 
        objFile = objFSO.GetFile(obj.value); 
       } else { 
        return false; 
       } 
      } catch (e) { 
       alert(e.message); 
       return false; 
      } 
     } 
    } 
    fileSpecs(div, btn); 
    objFile = null; 
    return true; 
} 

function fileSpecs(div, btn) { 
    if (objFile.Size > 0) { 
     btn.disabled = false; 
    } else { 
     btn.disabled = true; 
    } 
    var str = '<p>'; 
    str += '<b>File:</b> ' + objFile.Path + '<br>'; 
    str += '<b>Size:</b> '; 
    if (objFile.Size < 1024) { 
     str += objFile.Size + ' bytes'; 
    } else { 
     str += (objFile.Size/1024).toFixed(1) + ' Kbytes'; 
    } 
    str += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'; 
    str += '<b>Last Modified:</b> ' + objFile.DateLastModified; 
    str += '</p>'; 
    div.innerHTML = str; 
} 

function loadFile(btn, obj, div, fld) { 
    objFile = objFSO.GetFile(obj.value); 
    objStream = objFile.OpenAsTextStream(ForReading); 
    fld.value = objStream.ReadAll(); 
    objStream.Close(); 
    objStream = null; 
    fileSpecs(div, btn); 
    objFile = null; 
    return true; 
} 

function saveFile(btn, obj, div, fld, btn2) { 
    btn.disabled = true; 
    objFile = objFSO.GetFile(obj.value); 
    objStream = objFile.OpenAsTextStream(ForWriting); 
    objStream.Write(fld.value); 
    objStream.Close(); 
    objStream = null; 
    objFile = objFSO.GetFile(obj.value); 
    fileSpecs(div, btn2); 
    objFile = null; 
    fld.value = ''; 
    fld.onkeypress = new Function("return checkText(" + "document." + fld.form.name + "." + fld.name + "," + "document." + btn.form.name + "." + btn.name + ")"); 
    return true; 
} 
// End --> 
</script> 
</head> 

<body> 
<center> 
<form name="myForm" onsubmit="return false;"> 
<table width="720"> 
<tr> 
<td colspan="4"> 
<div id="fileSpec"> 
<p><b>File:</b><br><b>Size:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Last Modified:</b></p> 
</div> 
</td> 
</tr> 
<tr> 
<td colspan="3" width="580" align="center" valign="top"> 
<textarea rows="25" name="fileArea" cols="70" 
onkeypress="return checkText(this, btnSave);"></textarea> </td> 
<td rowspan="2" width="140" valign="top"><p>This is a simple demonstration of 
a browser-based local text file editor.&nbsp; Begin by clicking the <b>Browse</b> 
button to select an existing text file from your local hard drive.&nbsp; 
(In the Browse dialog, you may type in a new file name if 
desired.)&nbsp; The selected file information is then displayed at the 
top of the page.&nbsp; For an existing file, click the <b>Load</b> 
button next.&nbsp; After editing, click the <b>Save</b> button to 
complete the demonstration.</p></td> 
</tr> 
<tr> 
<td align="left"> 
<input type="file" name="fileName" size="50" 
onchange="return checkFile(this, document.getElementById('fileSpec'), btnLoad, btnSave, fileArea);"> </td> 
<td align="center"> 
<input type="button" name="btnLoad" value="Load" disabled 
onclick="return loadFile(this, fileName, document.getElementById('fileSpec'), fileArea);"> </td> 
<td align="center"> 
<input type="button" name="btnSave" value="Save" disabled 
onclick="return saveFile(this, fileName, document.getElementById('fileSpec'), fileArea, btnLoad);"> </td> 
</tr> 
</table> 
</form> 
</center> 

</body> 
</html> 

(également me informer à chaque fois et ce que u ont édité dans mon post, d'autres tristes à venir et d'édition mon post)

+0

Votre code est incomplet. Vous avez besoin des fonctions checkFile qui prend un champ de saisie (caché) avec des extensions et vous avez besoin de la fonction fileSpec qui fait quelque chose pour les boutons (comme les activer). Lorsque j'ai ajouté des fonctions vides pour ceux-ci, le fichier chargé - tout fichier texte y compris html – mplungjan

+0

désolé pour l'envoi de code incomplet – subanki

+0

Dans le code ci-dessus comment puis-je le faire charger le fichier dans un textarea où chemin textarea est parent.a.frame_name1.document .form_name1.textarea_name1 – subanki

Répondre

0

Remplacer les lignes

if (!/(\.txt)$/i.test(obj.value)) { 
    alert("Local file name must include the '.txt' extension."); 
    return false; 
} 

avec

if (!/(\.txt|\.htm|\.html)$/i.test(obj.value)) { 
    alert("Local file name must include the '.txt', '.htm' or '.html' extension."); 
    return false; 
} 

Pour votre commodité, il prend maintenant aussi les fichiers htm.

+0

merci, je vais essayer de l'exécuter et vous informer – subanki

+0

M. AlbertVanHalen, le code fonctionne maintenant, que vous frnd, pouvez-vous me dire votre réel nom et forme de quel pays vous venez .. afin que je puisse inclure votre nom dans ma page creidt .. plz l'afficher ici http://stackoverflow.com/questions/3236432/how-to-put-my-webpage -alors -that-je-peux-trouver-ma-page-dans-google-recherche – subanki

+1

PS: Vous constaterez que peut échouer dans IE8 puisque l'objet de fichier ne renvoie plus un vrai chemin de fichier à moins que la sécurité soit abaissée. Je suppose que la sécurité est déjà faible dans ce cas puisque vous utilisez l'objet système de fichiers pour lire le fichier – mplungjan

Questions connexes