Включить html в другой html файл для Adsence - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь включить свой код AdSense из файла с именем sda. html, находящегося в домашней папке сервера.

Я использую этот код, чтобы включить его:

    <div w3-include-html="../../sda.html" class="section_title text-center"></div>

из этого источника: https://www.w3schools.com/howto/howto_html_include.asp

, но я чувствую, что что-то не так.

кстати, мой сайт только HTML и js , так что если есть другой вариант получше, я буду рад его услышать.

Я также проверил этот вариант:

<!--#include virtual="/menu.shtml" -->

но я не использовал его, так как я понятия не имею, как будет работать мой следующий сервер. поэтому я пропускаю его.

и вот этот:

<object data="../../sda.html"></object>

Я предпочитаю этот, но я не могу контролировать его внешний вид, я не мог центрировать или что-то в этом роде

чем меньше код, тем он лучше.

1 Ответ

0 голосов
/ 06 мая 2020

Содержит ли sda.html только код AdSense или всю страницу?

Функция includeHTML от w3school не очень хороша. Я подозреваю, что проблема в том, что эта функция использует innerHTML для установки содержимого, а innerHTML не выполняет теги <script> с содержимым: проверьте «Вопросы безопасности» на MDN странице .

Чтобы обойти это, вы можете сделать следующее: удалить теги <script> из sda.html, а затем, как только вы импортировали HTML, запустить window.adsbygoogle.push({}) для каждого нового рекламного блока. Пример:

  1. Добавьте тег adbygoogle. js на своей странице:
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
Вставить объявление в div с идентификатором div-with-ad.
const divWithAd = document.querySelector('#div-with-ad');
divWithAd.innerHTML = `
   <ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-format="fluid"
     data-ad-layout="in-article"
     data-ad-client="ca-pub-0123456789101112"
     data-ad-slot="9876543210"></ins>
  `;
adsbygoog.push({});
...