Как добавить результаты HTML URL-вызова в DOM? - PullRequest
0 голосов
/ 24 января 2012

У меня есть URL-адрес, который находится в другом домене, например:

http://ads.adserver.com/ad?site=1233&zone=45435

Когда вы вводите этот URL-адрес в браузере, в результате получается HTML-код:

<a href="http://www.google.com" target=""><img src="htt://ads.adserver.com/i/image.gif" border="0"/></a><br/><a href="http://ads.adserver.com/redir/12313" target="">Test</a>

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

Я попытался зафиксировать этот URL в теге script и добавить его в DOM, но он не отображает HTML выше.

var ad_script = document.createElement('script');

ad_script.type = 'text/javascript';
ad_script.src = 'http://ads.adserver.com/ad?site=1233&zone=45435';

li.appendChild(ad_script);

Есть ли другие способы вызова этого URL и размещения результата на странице?Я не могу использовать $ .getScript (), так как я не вызываю это в глобальном контексте.Мне нужно, чтобы этот HTML-код отображался именно там, где я хочу его отображать.

РЕДАКТИРОВАТЬ. Единственная причина, по которой я пытаюсь использовать этот маршрут, заключается в том, что стороннее устройство не предоставляет интерфейс JSON-P.

EDIT2: К сожалению, я не на сервере приложений.

EDIT3: Это для iPhone.

Ответы [ 5 ]

2 голосов
/ 24 января 2012

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

<iframe src='http://ads.adserver.com/ad?site=1233&zone=45435' height='200px' width='200px' />
1 голос
/ 24 января 2012

Для этого вы захотите использовать ajax.Самым простым способом может быть метод jQuery .load ().

Если предположить, что элемент, в который вы хотите поместить содержимое, имеет идентификатор holder, вы должны сделать

('#holder').load('http://ads.adserver.com/ad?site=1233&zone=45435')

.поместите содержимое веб-страницы в выбранный вами элемент.http://api.jquery.com/load/

edit: Извините, забыл ограничения ajax между сайтами.Вместо этого вы можете настроить страницу php:

if(isset($_GET['url'])){
    echo file_get_contents($_GET['url'])
}

, а затем сделать

('#holder').load('http://yoursite.com/yourpage.php?url=http://ads.adserver.com/ad?site=1233&zone=45435')
0 голосов
/ 24 января 2012

попробуйте использовать jquery метод 'load'

`$ ('# result'). Load (url, function (response) {

$ ('# my-li '). append ($ (' # result '). html ());

$ (' # result '). html (null);

});`

где #result - это какой-то скрытый div

Надеюсь, это поможет вам.

0 голосов
/ 24 января 2012

Существует ряд вызовов jQuery ajax, которые могут выполнить это, например: jQuery.get ('http://ads.adserver.com/ad?site=1233&zone=45435', function (data) {jQuery (updateElementQuery) .html (data);});

0 голосов
/ 24 января 2012

Используйте подход jsonp. используйте фактический тег сценария и поместите исполняющую функцию javascript в качестве ответа, который добавляет эту HTML-разметку в dom. Он добавит его в доменную страницу, где находится тег script.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...