Как выполнить поиск определенного текста в серверном файле, используя javascript?

#javascript #html

#javascript #HTML

Вопрос:

Насколько я думаю, ответ на этот вопрос должен быть отрицательным, как бы хотелось проверить, есть ли у нас какие-либо обходные пути.

«У меня есть окно поиска на стороне клиента (текстовое поле), и могу ли я проверить текст, который пользователь ввел в текстовое поле, в файлах (HTML), находящихся на стороне сервера (давайте уточним — внутри определенной папки у меня есть 5 HTML-файлов), используя javascript (без использования каких-либокодирование на стороне сервера !!)».

Насколько мне известно, по соображениям безопасности мы не можем использовать Java script для доступа к файловой системе на стороне клиента. Однако здесь это на стороне сервера, можно ли это сделать?

Ответ №1:

Вы правы. JavaScript не может получить доступ к файловой системе ни при каких обстоятельствах. Это было бы ОГРОМНЫМ риском для безопасности, потому что JS запускается, в некоторых случаях, без согласия пользователей.

Если вы хотите получить данные из файла на сервере с помощью JavaScript, попросите ваш JS использовать AJAX для запроса информации у сервера.

Ресурсы AJAX

http://api.jquery.com/jQuery.ajax/

http://www.w3schools.com/ajax/ajax_intro.asp

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

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!!