Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Информер-виджет для сайта (https://javascript.ru/forum/misc/45514-informer-vidzhet-dlya-sajjta.html)

vertmann 04.03.2014 01:11

Информер-виджет для сайта
 
Я бы хотел сделать что-то вроде информера-виджета для сайта.

Т.е. есть мой сайт , на котором выводится какая-то информация.

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

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

Серверная часть на php.

Хотел сделать так:

на стороннем сайте размещаю html разметку и подгружаю скрипт

<script type="text/javascript"
src="http://my-site.com/myjavascript.js"></script>

который должен отправить ajax запрос и вернуть мне нужные данные, чтобы я мог вывести их на стороннем сайте/сайтах. Как такое можно реализовать?

Пробовал также как тут - http://javascript.ru/ajax/cross-origin-2

header('Access-Control-Allow-Origin: *'); - при приеме запроса со стороннего сайта

не помогло(

danik.js 04.03.2014 02:58

Цитата:

Сообщение от vertmann
не помогло(

Чему не помогло? Где твой код?

vertmann 04.03.2014 14:39

Цитата:

Сообщение от danik.js (Сообщение 300803)
Чему не помогло? Где твой код?

не совсем верно выразил мысль. просто вывести информер на другом сайте с нужной мне инфой получилось вот так(серверную часть приводить не буду, там просто отдается JSON):
<script type="text/javascript">
    var url = 'http://mysite.by/receive.php?oid=';

    function doCallOtherDomain(){
        var XHR = window.XDomainRequest || window.XMLHttpRequest;
        var xhr = new XHR();

        xhr.open('GET', url, true);

        xhr.onload = function() {
			var objJSON = eval('(' + xhr.responseText + ')');
			if(objJSON.err == 1) {
				alert("Проверьте правильность ввода номера объекта");
			} else {
				document.getElementById('ratingsm').innerHTML = objJSON.rating;
				document.getElementById('countloves').innerHTML = objJSON.count_loves;
				document.getElementById('recoms').innerHTML = objJSON.recs;
			}
        }

        xhr.onerror = function() {
            alert("Error")
        }
		
        xhr.send()
    }

    function callOtherDomain() {
        try {
            doCallOtherDomain()
        } catch (e) {
            alert("В этом браузере данная фича не поддерживается.")
        }
    }

</script>
	
<script type="text/javascript">
	callOtherDomain();
</script>


В данном информере выводится несколько кнопок с моего сайта, можно ли как-то обеспечить тот, функционал, который есть на моем сайте по клику?

Т.е. получится ли слать ajax запросы на мой домен, загвоздка еще в том состоит, что мне при этом нужно вывести немаленький html код-формы на стороннем сайте с моего?

danik.js 04.03.2014 15:26

Заголовок Access-Control-Allow-Origin обязательно нужен. Так что не "пробовать" - а обязательно выставлять.
В качестве альтернативы можно использовать JSONP - это даже наверно понадежней будет, хоть и не так круто.

vertmann 04.03.2014 16:16

Цитата:

Сообщение от danik.js (Сообщение 300921)
Заголовок Access-Control-Allow-Origin обязательно нужен. Так что не "пробовать" - а обязательно выставлять.
В качестве альтернативы можно использовать JSONP - это даже наверно понадежней будет, хоть и не так круто.

заголовок я выставляю. и 1 часть общей задачи решить получилось, на других сайтах я добавляю код виджета и там выводится нужная мне инфа, тут все ок.

проблема в том, что на этом информере есть кнопки (такие же как и на моем сайте), реально ли как-то обеспечить функционал по нажатию на эти кнопки на сторонних сайтах?

т.е. что вроде портлета.


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