|
|
|
| Здравствуйте. При создании пользовательской части системы голосование есть задачи:
1. После голосования пользователю должны показываться результаты без перезагрузки страницы.
2. Опрос должен вставляться при помощи:
<script language='JavaScript' src='http://domain.myportal.com/poll.php?id_poll=2'></script>
|
В тз сказано: "должен вставляться при помощи JavaScript кода".
По отдельности эти задачи решаются так.
1. Используем jquery и плагин jQuery Form
2. В poll.php выводим:
//$poll - код формы или результатов опроса
print "document.writeln('".$poll."')";
|
Проблема в том, что document.writeln('".$poll."')" выводит не только html, но и JavaScript, который относится к библиотеке jquery. Такой вариант не работает (консоль ошибок Firefox ничего не пишет). Это все равно, что написать:
<script language='JavaScript'>document.writeln("<script>alert('text');</script>")</script>
|
Можно, конечно, сделать код таким:
<script language='JavaScript' src=''http://domain.myportal.com/poll.php?id_poll=2'></script>
<script type="text/javascript">
$(document).ready(function(){
//код jquery
});
</script>
|
Тоже отказывается работать, хотя ошибок не выдает (сама библиотека подключается в шапке).
Может я не в ту сторону копаю? | |
|
|
|
|
|
|
|
для: antf
(12.05.2009 в 17:06)
| | а вы попробуйте сделать не с помощью writeln, а с помощью пустого дива и $(#id).load('http://domain.myportal.com/poll.php?id_poll=2'); | |
|
|
|
|
|
|
|
для: nikita2206
(12.05.2009 в 17:35)
| | ОГО!!! Спасибо. А я тут целый день с этим сидел :((( | |
|
|
|
|
|
|
|
для: nikita2206
(12.05.2009 в 17:35)
| | Появилась еще одна проблема: $(#id).load('http://domain.myportal.com/poll.php?id_poll=2'); не позволяет делать ajax-запрос к другому домену. Т.е. если мы размещаем этот код на странице http://domain2.myportal.com - появляется ошибка:
access to restricted uri denied code 1012
|
Есть ли простое решение данной проблемы?
Результаты поиска в Google:
Использование JSONP. Пока не знаю что такое:
http://www.simplecoding.org/xss-s-ispolzovaniem-jsonp-i-jquery.html
http://alt-f4.ru/crossdomain-ajax-query - громоздкий метод | |
|
|
|
|
|
|
|
для: antf
(13.05.2009 в 14:15)
| | придется использовать второй метод, вообще он не такой и громозкий | |
|
|
|
|
|
|
|
для: nikita2206
(13.05.2009 в 16:06)
| | Придумал вариант с относительными путями.
Вместо: $('#id').load('http://domain.myportal.com/poll.php?id_poll=2');
Пишем: $('#id').load('index.php?mod=get_poll_form&id_poll=2');
А в index.php это обрабатывать..
Но заказчик сказал, что ему никакие jquery не нужны (подключать не хочет), а опрос должен выводится через
<script src="http:/domain.mysite.com/index.php?act=getPollScript&poll_id=12" /> | |
|
|
|