如何在div中以编程方式添加脚本元素和ins?

时间:2017-04-24 19:31:08

标签: javascript

问题:

我想做类似的事情:

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

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

正确的语法是什么?

编辑:当然这种语法不正确,这就是我在这里要求解决方案的原因。

状况:

每次用户滚动rightScroll

时,该元素都会添加到100vh

2 个答案:

答案 0 :(得分:1)

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"

只有在DOM元素上有append方法时,这才有效。 append是一种jQuery方法,但在这种情况下,您似乎没有直接使用它。

我建议拨2个电话:

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

或使用jQuery(如果你已经加载了它):

$('#rightAdScroll').append(code)
document.getElementById("rightAdScroll").append(code);

答案 1 :(得分:1)

您需要将元素创建为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/