Элементарное API на Javascript
Здравствуйте. Стоит следующая задача:
- На сайте 1 расположен Javascript скрипт А. В нём расположена переменная, в которую записано значение. - На сайте 2 расположен Javascript скрипт Б. В нём расположен скрипт, который обращается к скрипту А с сайта 1 и получает значение переменной, "передавая" имя этой переменной. Скажите, пожалуйста, это возможно реализовать средствами Javascript? Если да -то как? Может быть у Вас есть примеры подобной реализации? Заранее благодарю за любые наводки по теме. |
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. |
Да, забыл самое главное.
На сайте 2 не должно быть подключения скриптов с сайта 1. Это возможно? |
Если они разнодоменные и оба ваши - можно потрепыхаться.
Если они разнодоменные и оба не ваши или один из них не ваш - на чистом js без вариантов, только подключая сервер. |
Цитата:
2 сайт - чужой сайт. На него устанавливается мой скрипт Б. Но этот скрипт должен работать на основе получаемых данных из скрипта А, установленных на моём сайте. Смысл в том, что есть необходимость в изменении параметров основного скрипта, которые будут влиять на работу дочерних скриптов на чужих сайтах, на которых установлены дополнительные скрипты (Б). Но из-за одной заморочки на чужой сайт можно ставить только Скрипт Б, который будет физически располагаться на сайте 2. Нельзя на сайте 2 светить в подключённых скриптах сайт 1. |
Что значит "нельзя светить"?
Есть всего два варианта: либо сайт 2 обращается за данными к сайту 1 абсолютно неважно каким образом - и это видно в сетевых обращениях; либо сайт 2 не обращается к сайту 1 и не получает никаких данных принципиально. Всё. |
Цитата:
Более глубокие проверки - не важны. Главное чтобы скрипт не был подключён явным образом. |
Цитата:
Если с этим ок, то у тебя два способа получить данные с другого домена: 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 передав нужные данные. |
Часовой пояс GMT +3, время: 06:28. |