Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   скрипт вывода рекламного блока внутри статьи (https://javascript.ru/forum/project/72090-skript-vyvoda-reklamnogo-bloka-vnutri-stati.html)

etulpan 08.01.2018 11:05

скрипт вывода рекламного блока внутри статьи
 
Добрый день. Есть скрипт вывода рекламного блока внутри статьи после определенного количества тегов <p> а как сделать , чтобы выводилось после n-кол-ва тега <br>? Если не сложно подскажите пожалуйста.

код Adsense надо вставить в шаблон перед контентом, обернув его в div какого-то класса:
<div class="myadsense">
... код Adsense ...
</div>
2. В статье использовать теги <p>. Середину статьи мы будем искать именно по ним: посчитаем сколько всего абзацев, например 10 и вставим рекламу после 5-го. Понятно, что тут мы упрощаем, ведь в статье могут быть списки, таблицы, цитаты и т.п.
3. В конце шаблона помещаем javaScript (или выносим его в отдельный файл и подключаем в конец шаблона), примерно такой :
$(function(){
   var insert_after = 4;
   var n =   parseInt($(".article p").length);
   if (n >= insert_after){
       $($(".article p")[insert_after]).after($(".myadsense"));
   };
});

рони 08.01.2018 11:17

etulpan,
:-? в чём проблема?

etulpan 08.01.2018 11:34

Цитата:

Сообщение от рони (Сообщение 474469)
etulpan,
:-? в чём проблема?

если я вставляю вместо р br скрипт не работает.
$(function(){
   var insert_after = 4;
   var n =   parseInt($(".article br").length);
   if (n >= insert_after){
       $($(".article br")[insert_after]).after($(".myadsense"));
   };
});

рони 08.01.2018 11:39

etulpan,
:-?
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function(){
   var insert_after = 4;
   var n =   parseInt($(".article br").length);
   if (n >= insert_after){
       $($(".article br")[insert_after]).after($(".myadsense"));
   };
});

  </script>
</head>

<body>
<div class="myadsense">
 ... код Adsense ...
 </div><div class="article">
<br>01
<br>02
<br>03
<br>04
<br>05
<br>06
<br>07
<br>08
<br>09
<br>10</div>

</body>
</html>

etulpan 08.01.2018 12:08

Спасибо большое

dantula 14.01.2021 23:48

Цитата:

Сообщение от рони (Сообщение 474472)
etulpan,
:-?
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function(){
   var insert_after = 4;
   var n =   parseInt($(".article br").length);
   if (n >= insert_after){
       $($(".article br")[insert_after]).after($(".myadsense"));
   };
});

  </script>
</head>

<body>
<div class="myadsense">
 ... код Adsense ...
 </div><div class="article">
<br>01
<br>02
<br>03
<br>04
<br>05
<br>06
<br>07
<br>08
<br>09
<br>10</div>

</body>
</html>

Здравствуйте. Подскажите пожалуйста, как прикрутить счётчик к вышенаписанному коду, чтобы к примеру выводить блок рекламы через каждый третий тег

рони 15.01.2021 00:29

dantula,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function(){
   var insert_after = 3, block = $(".myadsense:first");
   $(".article br").each((i, el) => {
   if(i && (i % insert_after) == 0)  $(el).after(block.clone());
    });
block.remove();
});
  </script>
</head>
<body>
<div class="myadsense">
 ... код Adsense ...
 </div>
 <div class="article">
<br>01
<br>02
<br>03
<br>04
<br>05
<br>06
<br>07
<br>08
<br>09
<br>10</div>
</body>
</html>

dantula 15.01.2021 02:01

рони,
Благодарю!

рони 15.01.2021 02:08

dantula,
код немного исправлен, скопируйте снова.


Часовой пояс GMT +3, время: 12:47.