
25.08.2016, 15:32
|
Новичок на форуме
|
|
Регистрация: 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> появляется содержимое.
Можно ли это содержимое вывести в разных местах одновременно?
|
|

25.08.2016, 16:33
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,614
|
|
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);
});
|
|

25.08.2016, 16:53
|
Новичок на форуме
|
|
Регистрация: 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 раза. В результате разное содержимое в блоках. Нужно именно клонировать результат. Т.е. чтобы содержимое блоков было одинаковое.
|
|

25.08.2016, 17:15
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,614
|
|
Сообщение от mamonic
|
В результате разное содержимое в блоках.
|
А ты проверял...
|
|

25.08.2016, 18:07
|
Новичок на форуме
|
|
Регистрация: 25.08.2016
Сообщений: 4
|
|
|
|

25.08.2016, 18:12
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 32,894
|
|
Rise,
а почему одинаковое то будет? два раза будет запрос на сервер, точнее даже три. 1 раз плагин и 2 раза запрос информации плагином.между запросами информация может измениться и разных блоках будет отличие. искать надо какое то api или делать костыль типа опроса первого блока.
|
|

26.08.2016, 05:59
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
ТС, ну так клонируй ноду или перепиши innerHTML из того блока, в этот, после того как.
|
|

26.08.2016, 06:03
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Например берем скрипт профессора и вместо
Ya.Direct.insertInto(x, y + 2, z);
пишем
document.getElementById(y + 2).innerHTML=document.getElementById(y + 1).innerHTML.
или что-нибудь поумнее в этом роде.
|
|

26.08.2016, 07:02
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 32,894
|
|
warren buffet,
какой смысл копировать пустой div?
Сообщение от warren buffet
|
или что-нибудь поумнее в этом роде.
|
Observer?
|
|

26.08.2016, 08:22
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
А, ну понял, типа там запрос всего лишь формируется. Надо тогда покопаться в яндексной мануале по этой рекламе, наверняка там что-нить поджигается или есть калбеки.
|
|
|
|