#javascript #html
#javascript #HTML
Вопрос:
Насколько я думаю, ответ на этот вопрос должен быть отрицательным, как бы хотелось проверить, есть ли у нас какие-либо обходные пути.
«У меня есть окно поиска на стороне клиента (текстовое поле), и могу ли я проверить текст, который пользователь ввел в текстовое поле, в файлах (HTML), находящихся на стороне сервера (давайте уточним — внутри определенной папки у меня есть 5 HTML-файлов), используя javascript (без использования каких-либокодирование на стороне сервера !!)».
Насколько мне известно, по соображениям безопасности мы не можем использовать Java script для доступа к файловой системе на стороне клиента. Однако здесь это на стороне сервера, можно ли это сделать?
Ответ №1:
Вы правы. JavaScript не может получить доступ к файловой системе ни при каких обстоятельствах. Это было бы ОГРОМНЫМ риском для безопасности, потому что JS запускается, в некоторых случаях, без согласия пользователей.
Если вы хотите получить данные из файла на сервере с помощью JavaScript, попросите ваш JS использовать AJAX для запроса информации у сервера.
Ресурсы AJAX
Комментарии:
1. Не совсем верно для этой крайности. Javascript имеет ряд функций файловой системы, которые будут работать при локальном запуске.
2. @evan, в OP не говорится о локальном запуске JS. Кроме того, можете ли вы привести несколько примеров функций файловой системы, которые есть в JS?
3. Пожалуйста, посмотрите на этот пример , можно ли его изменить, чтобы получить мое требование..
4. @Jithu, опубликованный вами пример представляет собой пример доступа к файлу на сервере с использованием AJAX (асинхронный Javascript и XML). Это метод, который я упомянул в своем ответе. Итак, да, этот метод можно адаптировать в соответствии с вашими потребностями. Я отредактировал свой пост, чтобы указать вам правильное направление, если вы новичок в использовании AJAX.
5. @James — извините, я видел только верхнюю часть, которая обращается к файлу непосредственно в локальной системе. Не видел ответов, которые используют AJAX.
Ответ №2:
Да, если файлы имеют общедоступные URI (это означает, что вы можете получить к ним доступ в своем браузере, набрав http://example.com/yourfile ), вы, безусловно, можете получить к ним прямой доступ, используя только Javascript, не используя серверный код. Вызов AJAX — это чистый Javascript.
Это можно легко сделать с .load()
помощью функции jQuery. Это приведет к получению файла или даже его части и помещению его в элемент, с которым вы будете работать. Вы также можете использовать .get()
текст и работать с ним напрямую.
Документация здесь:
http://api.jquery.com/load/
http://api.jquery.com/jQuery.get/
Пример:
$.get( 'http://example.com/yourfile.html', function( data ) {
if( data.indexOf( 'your search text' ) > -1 ) {
alert( 'search text found!' );
};
});
Комментарии:
1. Спасибо, TS за подробное объяснение 🙂
Ответ №3:
Вы не можете сделать это напрямую. Вы МОЖЕТЕ использовать javascript в вызове AJAX, чтобы запустить скрипт на стороне сервера для выполнения ваших проверок.
Комментарии:
1. Пожалуйста, взгляните на этот пример
2. Отправленный вами пример позволяет открыть файл локально. Это работает только тогда, когда вы запускаете javascript непосредственно на компьютере, к которому вы обращаетесь. Это не будет работать для вашего сценария.
3. Спасибо, Эван, позволь мне попробовать с Ajax!!