Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как прочитать GET, переданный из другого скрипта? (https://javascript.ru/forum/misc/53481-kak-prochitat-get-peredannyjj-iz-drugogo-skripta.html)

Andrej_2 05.02.2015 15:37

Как прочитать GET, переданный из другого скрипта?
 
Есть внешний js, который помимо прочего передает GET-ом параметры другому внешнему js. Скажем, param_1="1"; param_2="test";

<script>
document.write("<script src='http://ya.ru/baza.js?param_1=1&param_2=test'></scr"+"ipt>");
</script>


Количество и названия параметров известны заранее, все латинницей

Как словить эти данные во внешнем скрипте, который подгружается?
Понимаю, что ответ может быть элементарным, но раньше такими делами заниматься не приходилось. Пытался поискать, везде какие-то дебри предлагаются вроде подключения монстроподобных библиотек. Логично было бы на сервере еще подключить обработчик через SSI <!--#echo var="QUERY_STRING" --> и разобрать его, но должно же быть простое решение и в самом js?

Нужно в скрипте baza.js
лишь обозначить переменные:

param_1="1";
param_2="test";

чтобы потом по этим параметрам сделать нужные манипуляции с выводом.

tsigel 05.02.2015 15:58

Самое простое что пиходит на ум - переопределить объект httpRequest, а дальше смотреть кто и зачем его дергает, но может работать не везде и вообще так лучше не делать. А от чего возникла такая необходимость если не секрет?

Andrej_2 05.02.2015 16:18

Потребность такая возникла для специфической раскрутки: на разных (в том числе бесплатных) хостингах создается много сайтов с релевантными для поисковика текстами, все они снабжаются внешним JS, который, в свою очередь, на основном сайте забирает внешние скрипты базы и настроек дизайна. Эдакий SSI для неограниченного числа хостингов получается. Редактировать можно оперативно эти два внешних js. После показа раскруточного варианта слоями выводится основной дизайн с основными текстами и меню. В зависимости от темы раскрутки подстраивается содержание выводимой основной части. Вот как-то так.

Пробовал еще без get напрямую передавать переменные типа так:

<script>
my param_1="1";
my param_2="test";
document.write("<script src='http://ya.ru/baza.js'></scr"+"ipt>");
</script>


Но внешний js baza.js на другом хостинге их почему-то не может словить. Хотя не понимаю, почему.

Andrej_2 05.02.2015 16:36

Вот так только более-менее прилично получилось:

В самих HTML в HEAD перед прописыванием ссылки на первый внешний js, в котором идет подгрузка других js с основного сайта, дополнительно ставлю в коде js с указанными параметрами:

<HTML>
<HEAD>
<TITLE>Бла-бла</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<script>
var param_1="1";
var param_2="test";
</script>
<script src='podstavka.js'></script>
</HEAD>


Сам же скрипт podstavka.js действует как описано постом выше, т.е. просто подгружает что надо без GET.

Такой вариант работает, но изначально хотелось конечно максимально все спрятать во внешние скрипты, чтобы поисковики ни о чем не догадывались и нельзя было понять логику работы (в том числе и заказчику).

Aetae 05.02.2015 16:54

Если скрипт загружается синхронно(т.е. обычным образом), то на момент исполнения он является последним скриптом на странице. Потому можно просто получить ссылку:
document.scripts[document.scripts.length-1].src


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