Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.08.2016, 15:32
Новичок на форуме
Отправить личное сообщение для mamonic Посмотреть профиль Найти все сообщения от mamonic
 
Регистрация: 25.08.2016
Сообщений: 4

Как клонировать результат выполнения скрипта?
Здравствуйте. Подскажите, можно ли загрузив 1 раз скрипт, вывести его результат в нескольких местах?
Допустим есть рекламный код ЯндексДиректа.

Пример кода, который прописан на странице:

<div id="yandex_ad"></div>
<script type="text/javascript">
(function(w, d, n, s, t) {
    w[n] = w[n] || [];
    w[n].push(function() {
        Ya.Direct.insertInto(123456, "yandex_ad", {
            stat_id: 1,
            ad_format: "direct",
            font_size: 0.8,
            font_family: "arial",
            type: "flat",
            limit: 1,
            title_font_size: 1,
            links_underline: true,
            site_bg_color: "FFFFFF",
            title_color: "000000",
            url_color: "000000",
            text_color: "000000",
            hover_color: "0066FF",
            sitelinks_color: "000000",
            favicon: true,
            no_sitelinks: false
        });
    });
    t = d.getElementsByTagName("script")[0];
    s = d.createElement("script");
    s.src = "//an.yandex.ru/system/context.js";
    s.type = "text/javascript";
    s.async = true;
    t.parentNode.insertBefore(s, t);
})(window, document, "yandex_context_callbacks");
</script>


В результате его выполнения в контейнере <div id="yandex_ad"></div> появляется содержимое.
Можно ли это содержимое вывести в разных местах одновременно?
Ответить с цитированием
  #2 (permalink)  
Старый 25.08.2016, 16:53
Новичок на форуме
Отправить личное сообщение для mamonic Посмотреть профиль Найти все сообщения от mamonic
 
Регистрация: 25.08.2016
Сообщений: 4

Сообщение от Rise Посмотреть сообщение
mamonic, элементарно:
<div id="yandex_ad1"></div>
<div id="yandex_ad2"></div>

w[n].push(function() {
	var x = 123456,
		y = "yandex_ad",
		z = {
			stat_id: 1,
			ad_format: "direct",
			font_size: 0.8,
			font_family: "arial",
			type: "flat",
			limit: 1,
			title_font_size: 1,
			links_underline: true,
			site_bg_color: "FFFFFF",
			title_color: "000000",
			url_color: "000000",
			text_color: "000000",
			hover_color: "0066FF",
			sitelinks_color: "000000",
			favicon: true,
			no_sitelinks: false
		};
	Ya.Direct.insertInto(x, y + 1, z);
	Ya.Direct.insertInto(x, y + 2, z);
});
Спасибо, но тут получается, что скрипт отрабатывает 2 раза. В результате разное содержимое в блоках. Нужно именно клонировать результат. Т.е. чтобы содержимое блоков было одинаковое.
Ответить с цитированием
  #3 (permalink)  
Старый 25.08.2016, 18:07
Новичок на форуме
Отправить личное сообщение для mamonic Посмотреть профиль Найти все сообщения от mamonic
 
Регистрация: 25.08.2016
Сообщений: 4

Сообщение от Rise Посмотреть сообщение
А ты проверял...
Да.
Скрин 1 - результат: http://dl1.joxi.net/drive/2016/08/25...d368ca9d6d.jpg

Скрин 2 - исходник: http://dl1.joxi.net/drive/2016/08/25...13bf9509ad.jpg
Ответить с цитированием
  #4 (permalink)  
Старый 25.08.2016, 18:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Rise,
а почему одинаковое то будет? два раза будет запрос на сервер, точнее даже три. 1 раз плагин и 2 раза запрос информации плагином.между запросами информация может измениться и разных блоках будет отличие. искать надо какое то api или делать костыль типа опроса первого блока.
Ответить с цитированием
  #5 (permalink)  
Старый 26.08.2016, 05:59
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

ТС, ну так клонируй ноду или перепиши innerHTML из того блока, в этот, после того как.
Ответить с цитированием
  #6 (permalink)  
Старый 26.08.2016, 06:03
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Например берем скрипт профессора и вместо

Ya.Direct.insertInto(x, y + 2, z);

пишем

document.getElementById(y + 2).innerHTML=document.getElementById(y + 1).innerHTML.

или что-нибудь поумнее в этом роде.
Ответить с цитированием
  #7 (permalink)  
Старый 26.08.2016, 07:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

warren buffet,
какой смысл копировать пустой div?
Сообщение от warren buffet
или что-нибудь поумнее в этом роде.
Observer?
Ответить с цитированием
  #8 (permalink)  
Старый 26.08.2016, 08:22
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

А, ну понял, типа там запрос всего лишь формируется. Надо тогда покопаться в яндексной мануале по этой рекламе, наверняка там что-нить поджигается или есть калбеки.
Ответить с цитированием
  #9 (permalink)  
Старый 26.08.2016, 14:51
Новичок на форуме
Отправить личное сообщение для mamonic Посмотреть профиль Найти все сообщения от mamonic
 
Регистрация: 25.08.2016
Сообщений: 4

В общем не получится, как я понял
Ответить с цитированием
  #10 (permalink)  
Старый 26.08.2016, 17:13
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Есть там калбек, кури ману https://yandex.ru/support/partner/pr...der-callback_1
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отладить клиентскую часть скрипта в Google Apps Script? Johnny1500 Общие вопросы Javascript 3 24.08.2016 18:15
Прерывание выполнения скрипта AndreyS AJAX и COMET 2 25.07.2011 11:41
как получить результат умножения b и e vmtiu Элементы интерфейса 5 27.11.2009 19:20
Как переместить результат работы скрипта? Vlaimir Events/DOM/Window 2 31.08.2009 13:52
Подскажите, пжлст, как вывести в тот же документ результат ф-ции? LexXxeL Элементы интерфейса 4 13.05.2009 13:26