Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.10.2019, 10:12
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 150

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

url = "example.com";

window.open(url);
});


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

Как сделать, чтобы в переменную "url" считывалась строка из файла? Желательно с помощью jQuery.
Ответить с цитированием
  #2 (permalink)  
Старый 08.10.2019, 10:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,865

Сообщение от javascript_pupil
его надо считать из локального текстового файла из одной строки "text.txt"
То есть не о веб приложении идет речь?
Ответить с цитированием
  #3 (permalink)  
Старый 08.10.2019, 10:41
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 150

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


При установке в мой скрипт не работает. Как я понимаю его нужно как-то модифицировать, но с jQuery не знаком.
Ответить с цитированием
  #4 (permalink)  
Старый 08.10.2019, 10:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,865

Сообщение от javascript_pupil
значения URL на разных сайтах могут быть разные
Так о чем идет речь, о сетевом файле или локальном?
Ответить с цитированием
  #5 (permalink)  
Старый 08.10.2019, 10:57
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 150

Файл лежит на сайте (сервере). Скрипт на этом же сайте и сервере. Не знаю каким файл считается. Вроде бы он локальный для скрипта. Раз они в одном месте живут, на одном физическом сервере и на одном домене. Не?
Ответить с цитированием
  #6 (permalink)  
Старый 08.10.2019, 11:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,865

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

Последний раз редактировалось laimas, 08.10.2019 в 11:06.
Ответить с цитированием
  #7 (permalink)  
Старый 08.10.2019, 12:02
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 150

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

и ничего не происходит. Полный путь, вместо "example.com" адрес сайта. И без полного пути тоже не работает с '/robots.txt'.
Ответить с цитированием
  #8 (permalink)  
Старый 08.10.2019, 12:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,865

Все должно работать, если файл в корне документов, то достаточно указать только имя файла. Не будет вывод результата только в том случае, если этот файл на другом домене, то есть страница запрашиваемая не принадлежит example.com. В этом случае это кроссдоменный запрос, и получить к нему доступ можно только если example.com дает на это разрешение. В противном случае нужен посредник - сервер, свой или прокси.
Ответить с цитированием
  #9 (permalink)  
Старый 08.10.2019, 12:30
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 150

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

$("#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.

Последний раз редактировалось javascript_pupil, 08.10.2019 в 12:34.
Ответить с цитированием
  #10 (permalink)  
Старый 08.10.2019, 12:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,865

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить произвольный файл в веб-хранилище (localstorage)? ice99 Общие вопросы Javascript 2 05.01.2018 08:26
Передача результата функции jquery на другу страницу WhiteFox Events/DOM/Window 20 11.05.2017 14:57
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 11:29
JS классы - как объединить функции в класс olga153b Events/DOM/Window 3 01.11.2011 12:13
Как считать файл с винта и вставить его в mht-файл ? potkin Общие вопросы Javascript 4 26.08.2008 13:17