Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2014, 18:21
Интересующийся
Отправить личное сообщение для Smokvin Посмотреть профиль Найти все сообщения от Smokvin
 
Регистрация: 31.03.2012
Сообщений: 20

Элементарное API на Javascript
Здравствуйте. Стоит следующая задача:

- На сайте 1 расположен Javascript скрипт А. В нём расположена переменная, в которую записано значение.

- На сайте 2 расположен Javascript скрипт Б. В нём расположен скрипт, который обращается к скрипту А с сайта 1 и получает значение переменной, "передавая" имя этой переменной.


Скажите, пожалуйста, это возможно реализовать средствами Javascript? Если да -то как? Может быть у Вас есть примеры подобной реализации?

Заранее благодарю за любые наводки по теме.
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2014, 18:49
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

a.js:
var x = 'abc';

b.js:
alert(x);


HTML:

<script src="http://site1.ru/a.js"></script>
<script src="http://site2.ru/b.js"></script>


С чем возникли сложности? Почитай еще про JSONP.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2014, 18:59
Интересующийся
Отправить личное сообщение для Smokvin Посмотреть профиль Найти все сообщения от Smokvin
 
Регистрация: 31.03.2012
Сообщений: 20

Да, забыл самое главное.
На сайте 2 не должно быть подключения скриптов с сайта 1.
Это возможно?
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2014, 19:14
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Если они разнодоменные и оба ваши - можно потрепыхаться.
Если они разнодоменные и оба не ваши или один из них не ваш - на чистом js без вариантов, только подключая сервер.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2014, 19:37
Интересующийся
Отправить личное сообщение для Smokvin Посмотреть профиль Найти все сообщения от Smokvin
 
Регистрация: 31.03.2012
Сообщений: 20

Сообщение от Aetae Посмотреть сообщение
Если они разнодоменные и оба ваши - можно потрепыхаться.
Если они разнодоменные и оба не ваши или один из них не ваш - на чистом js без вариантов, только подключая сервер.
1 сайт мой. На нём содержится основной скрипт, в котором иногда меняются определённые значения.

2 сайт - чужой сайт. На него устанавливается мой скрипт Б. Но этот скрипт должен работать на основе получаемых данных из скрипта А, установленных на моём сайте.

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

Но из-за одной заморочки на чужой сайт можно ставить только Скрипт Б, который будет физически располагаться на сайте 2. Нельзя на сайте 2 светить в подключённых скриптах сайт 1.
Ответить с цитированием
  #6 (permalink)  
Старый 07.11.2014, 19:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Что значит "нельзя светить"?
Есть всего два варианта: либо сайт 2 обращается за данными к сайту 1 абсолютно неважно каким образом - и это видно в сетевых обращениях; либо сайт 2 не обращается к сайту 1 и не получает никаких данных принципиально.
Всё.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 07.11.2014, 19:49
Интересующийся
Отправить личное сообщение для Smokvin Посмотреть профиль Найти все сообщения от Smokvin
 
Регистрация: 31.03.2012
Сообщений: 20

Сообщение от Aetae Посмотреть сообщение
Что значит "нельзя светить"?
Есть всего два варианта: либо сайт 2 обращается за данными к сайту 1 абсолютно неважно каким образом - и это видно в сетевых обращениях; либо сайт 2 не обращается к сайту 1 и не получает никаких данных принципиально.
Всё.
Открытие исходного кода и просмотр подключённых через <script type="text/javascript" src=""></script> не должно содержать подключённого скрипта А с сайта 1 (или какого-либо вообще скрипта с упоминанием домена сайта 1).

Более глубокие проверки - не важны. Главное чтобы скрипт не был подключён явным образом.
Ответить с цитированием
  #8 (permalink)  
Старый 08.11.2014, 11:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Smokvin
Более глубокие проверки - не важны
То есть ты понимаешь, что полный чайник ничего не поймет, но если он в состоянии нажать F12 и кликнуть по табу Сеть то все всплывет наружу?
Если с этим ок, то у тебя два способа получить данные с другого домена:
1) Кроссдоменный XMLHttpRequest запрос
2) JSONP

Для первого варианта пишешь PHP скрипт который на OPTIONS запрос выставит Access-Control-Allow-Origin: * (такой запрос шлет браузер перед тем, как отправить кроссдоменный GET/POST-запрос), а на GET/POST уже отдает JSON с нужными данными. Либо можно обойтись (вроде бы) без PHP, настроив вебсервер на отдачу такого заголовка.

Второй проще:
var script = document.createElement('script');
script.src = 'site1.ru/a.js';
document.body.appendChild(script);


a.js должен вызвать некую функцию из b.js передав нужные данные.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS2DX - API для библиотек JavaScript JS2DX Библиотеки/Тулкиты/Фреймворки 0 20.04.2014 09:59
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34