< Сильный > Вопрос :

Я хотел бы сделать что-то похожее на это:

var code = (<ins>...</ins><script>...</script>)

document.getElementById("rightScroll").append(code);

Какой правильный синтаксис?

РЕДАКТИРОВАТЬ: Конечно, этот синтаксис является неправильным, поэтому я прошу решение здесь.


< Сильный > СИТУАЦИЯ :

Элемент будет добавляться в rightScroll каждый раз, когда пользователь прокручивает 100vh

0
Coder1000 24 Апр 2017 в 22:31

2 ответа

Лучший ответ

Вам нужно создать элементы как элементы dom:

var ins = document.createElement("ins");
ins.className = 'adsbygoogle';
ins.style = 'display:block;width:300px;height:600px;margin-bottom: 20px;';
var attClient = document.createAttribute('data-ad-client');
attClient.value = '...';
ins.setAttributeNode(attClient);
var attSlot = document.createAttribute('data-ad-slot');
attSlot.value = '...';
ins.setAttributeNode(attSlot);

var myScript = document.createElement("script");
myScript.setAttribute('type', 'text/javascript');
myScript.innerHTML = '(adsbygoogle = window.adsbygoogle || []).push({});';

var rightScroll = document.getElementById("rightAdScroll");
rightScroll.appendChild(ins);
rightScroll.appendChild(myScript);

Скрипка: https://jsfiddle.net/9tdn2qcd/1/

1
Martina 24 Апр 2017 в 20:42

В методе getElementById есть опечатка, и строимая вами строка не в кавычках. Я грубо процитировал предоставленную вами строку, но, вероятно, вам потребуется дополнительное внимание, где находится ваш ... код.

var code = "<ins class=\"adsbygoogle\"" +
         "style=\"display:block;width:300px;height:600px;margin-bottom: 20px;\"" +
         "data-ad-client=\"...\"" +
         "data-ad-slot=\"...\"></ins>" +
         "<script>" +
         "(adsbygoogle = window.adsbygoogle || []).push({});" +
         "</script>";

document.getElementById("rightAdScroll").append(code);
//                   ^^ was missing "Id"

Это будет работать, только если у вас есть метод append в вашем элементе DOM. append является методом jQuery, но не похоже, что вы используете его напрямую в этом случае.

Я бы посоветовал сделать 2 звонка:

var myElem = document.getElementById("rightAdScroll");
myElem.appendChild(insTag);
myElem.appendChild(scriptTag);

Или используйте jQuery (если он уже загружен):

$('#rightAdScroll').append(code)
document.getElementById("rightAdScroll").append(code);
1
scunliffe 24 Апр 2017 в 20:39