Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как считать файл внутри функции jQuery "click"? (https://javascript.ru/forum/misc/78591-kak-schitat-fajjl-vnutri-funkcii-jquery-click.html)

javascript_pupil 08.10.2019 10:12

Как считать файл внутри функции jQuery "click"?
 
$("#testing").click(function() {

url = "example.com";

window.open(url);
});


При нажатии на объект происходит переход на заданный URL. Но прописывать URL жестко в коде нельзя, его надо считать из локального текстового файла из одной строки "text.txt". Но если вставлять внутрь данного кода другую функцию jQuery (jQuery.get()), то ничего не работает.

Как сделать, чтобы в переменную "url" считывалась строка из файла? Желательно с помощью jQuery.

laimas 08.10.2019 10:22

Цитата:

Сообщение от javascript_pupil
его надо считать из локального текстового файла из одной строки "text.txt"

То есть не о веб приложении идет речь?

javascript_pupil 08.10.2019 10:41

Нет. Просто на сайте есть необходимость использовать единый javascript, а значения URL на разных сайтах могут быть разные. Поэтому их надо брать из файла. А код, приведённый в качестве решения такого вопроса:
$.get('file_to_read.txt', function(data) {
   do_something_with(data)
}, 'text');
 //  ^------last argument


При установке в мой скрипт не работает. Как я понимаю его нужно как-то модифицировать, но с jQuery не знаком.

laimas 08.10.2019 10:52

Цитата:

Сообщение от javascript_pupil
значения URL на разных сайтах могут быть разные

Так о чем идет речь, о сетевом файле или локальном?

javascript_pupil 08.10.2019 10:57

Файл лежит на сайте (сервере). Скрипт на этом же сайте и сервере. Не знаю каким файл считается. Вроде бы он локальный для скрипта. Раз они в одном месте живут, на одном физическом сервере и на одном домене. Не?

laimas 08.10.2019 11:02

Цитата:

Сообщение от javascript_pupil
Вроде бы он локальный для скрипта

Страница у клиента и локальным файлом для нее будут файлы на компьютере клиента, а те что на сервере, это сетевые файлы. Если указать 'file_to_read.txt', значит на сервере файл будет искаться в корне документов - //domain/file_to_read.txt. Так что проверяйте путь.

javascript_pupil 08.10.2019 12:02

Пишу:
$.get('https://example.com/robots.txt', function(data) {
alert(data);
}, 'text');

и ничего не происходит. Полный путь, вместо "example.com" адрес сайта. И без полного пути тоже не работает с '/robots.txt'.

laimas 08.10.2019 12:11

Все должно работать, если файл в корне документов, то достаточно указать только имя файла. Не будет вывод результата только в том случае, если этот файл на другом домене, то есть страница запрашиваемая не принадлежит example.com. В этом случае это кроссдоменный запрос, и получить к нему доступ можно только если example.com дает на это разрешение. В противном случае нужен посредник - сервер, свой или прокси.

javascript_pupil 08.10.2019 12:30

Вот полный код, который не работает:

$("#testing").click(function() {

$.get('https://example.com/robots.txt', function(data) {
alert(data);
}, 'text');

});


Код специально упростил, чтобы увидеть текст хотя бы в alert. Нет ничего.

IE 11 выдает: Объект не поддерживает свойство или метод get.
Chrome: Uncaught TypeError: $.get is not a function.

laimas 08.10.2019 12:45

jQury нужно подключить, чтобы использовать ее функции. Ошибка же указывает причину - Uncaught TypeError: $.get is not a function.


Часовой пояс GMT +3, время: 05:37.