Вы здесь

Как правильно в div сунуть js?

1

Добрый день! Пытаюсь засунуть в существующий div js


function appendAdRiver(){ var script = "http://ptz7final.ru/sites/all/themes/ptzgovorit/scripts/ad/adriver_bn_5.js"; $('article.active-node').find('.ad-bottom-node').append('<div><script type="text/javascript" src="'+script+'"><\/script><div>'); }

После чего, белая страница и результат js'a. В логах

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.

Версия Drupal: 
7.x
Категория: 
Javascript
Вопрос задан 24.06.2015 - 18:01
Аватар пользователя Sora
Sora
92

Это скрипт adriver он вызывается в блоке чтобы показать рекламу. Вот сам скрипт его:

var RndNum4NoCash = Math.round(Math.random() * 1000000000);
var ar_Tail='unknown'; if (document.referrer) ar_Tail = escape(document.referrer);
document.write(
'<iframe src="' + ('https:' == document.location.protocol ? 'https:' : 'http:') + '//ad.adriver.ru/cgi-bin/erle.cgi?'
+ 'sid=196918&bn=5&target=top&w=700&h=100&bt=19&pz=3&rnd=' + RndNum4NoCash + '&tail256=' + ar_Tail
+ '" frameborder=0 vspace=0 hspace=0 width=700 height=100 marginwidth=0'
+ ' marginheight=0 scrolling=no></iframe>');

Я что пытаюсь сделать, есть лента материалов в которой по ajax подгружаются материалы, и мне надо между ними пихать эту рекламу...

Комментарий оставлен 24.06.2015 - 18:26

А поподробней не подскажите как? Делали callback который возвращает код блока через module_invoke?

Комментарий оставлен 25.06.2015 - 14:48

Делал deliver callback который возвращал код (скрипт и разметка и т.д.) в нужный элемент.

Комментарий оставлен 26.06.2015 - 11:05

Ответы

0

Я проще делал. В шаблоне ноды на пхп отсчитывал абзацы и вставлял рекламу из блокa через module_invoke .В самом блоке находилась скрипт рекламы.

Ответ дан 25.06.2015 - 01:40
Аватар пользователя m0Hax
m0Hax
13

Спасибо, попробую сегодня.

Комментарий оставлен 25.06.2015 - 14:46

Не помогло. Попробовал в шаблон добавить


<?php $block = module_invoke('block', 'block_view', 81); echo render($block['content']); ?>

И все равно DOM рушится, и показывается только реклама :(

Комментарий оставлен 25.06.2015 - 20:45

Вот кусок из рабочего варианта

$block = module_invoke('block', 'block_view', 10);
$advert1 = render($block['content']);

$article_text = render($content['body']);
$len = round(strlen($article_text) / 3);
$pos = strpos($article_text, '< p >', $len);
if ($pos != 0) {
$adv = $advert1;
$article_text = substr($article_text, 0, $pos) . $adv . substr($article_text, $pos);
}

B если скрипт рушит вёрстку. Можно обжать дивом, и попробовать поманипулировать !important в css.

Комментарий оставлен 25.06.2015 - 23:15