Есть ли какой-нибудь способ прочитать текстовый файл на javascript помимо использования ActiveX?

#javascript #html #xmlhttprequest

#javascript #HTML #xmlhttprequest

Вопрос:

Учитывая, что все файлы (html-файл, текстовые файлы и т.д.) Находятся в Интернете, есть ли какой-либо способ прочитать текстовый файл и распечатать их в текстовом поле помимо использования ActiveX?

Я пробовал так, но это не достигло цели:

функция getSelectedItem(){
 var client = новый XMLHttpRequest();

 если(document.codeForm.dropList.value == "foo")
 client.open('GET', 'foo.txt ');
 еще, если(document.codeForm.dropList.value == "bar")
 client.open('GET', 'bar.txt ');
 client.onreadystatechange = функция() {
 // Это фактически отображает сообщение в файле 
 оповещение (client.responseText);

 //Но это не так. Это просто отображает "undefined"
// document.codeForm.source.value = client.reponseText;
 } 
client.send(); 
}

Поскольку я действительно мог бы отобразить предупреждающее сообщение с контекстом файла, я полагаю, что был бы какой-то способ сделать это. (На самом деле содержимое файлов, похоже, отображается в «client.reponseText», но тип данных — DOMString, а не просто String.)

Любой совет был бы очень признателен. Спасибо.

Ответ №1:

Используйте jQuery. http://api.jquery.com/jQuery.get /

 $.get("http://www.whatever.com/foo.txt", null, function(response){
    $("#theTextArea").val(response); // where theTextArea is the ID of the textarea you want to put the data into.
});
  

Комментарии:

1. @Mike Ruhlin- интересно, есть ли txt- и html-файлы локально в системе

Ответ №2:

попробуйте это вместо

 document.codeForm.source.innerValue = client.reponseText;
  

или

 document.getElementById("source").innerHtml = client.responseText;
  

или

 document.getElementById("source").innerText = client.responseText;
  

для использования последних двух методов вашей текстовой области потребуется атрибут id

Комментарии:

1. Я только что пробовал, но это не дает никаких изменений в текстовой области.

2. они по-прежнему отображали «undefined». Я все равно устранил проблему, используя jQuery. Спасибо.