如何在运行时将 javascript 警报添加到 innerHTML

How do I add a javascript alert to innerHTML at runtime

本文关键字:添加 innerHTML javascript 运行时      更新时间:2023-09-26

当发生我监听的特定事件时 - 我想用调用我的谷歌广告代码的javascript填充div'divDynamicAdvert'。

非常感谢"十位"向我展示我需要像这样附加一个脚本节点:

function myEventHandler(evt)         //called when event is caught
{   
  var script = document.createElement('script');
  script.textContent = 'alert(1)';
  document.getElementById('divDynamicAdvert').appendChild(script);
}

这很好用,但是为了代替警报,我需要插入Google Ads Javascript:

<script type="text/javascript"><!--
        google_ad_client = "ca-pub-3286208413631803";
        /* Standard MPU */
        google_ad_slot = "8630273973";
        google_ad_width = 300;
        google_ad_height = 250;
        //-->
</script>
<script type="text/javascript"
        src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

我试过:

var script = document.createElement('script');
script.textContent = 'google_ad_client = 'ca-pub-3286208413631803'; google_ad_slot = '8630273973'; google_ad_width = 300; google_ad_height = 250;';
document.getElementById('divDynamicAdvert').appendChild(script);
var script = document.createElement('script src="http://pagead2.googlesyndication.com/pagead/show_ads.js"');
document.getElementById('divDynamicAdvert').appendChild(script);

我也尝试过逃避斜杠,但没有运气... 你们能帮忙吗?

正如@slebetman已经说过的,innerHTML行不通。如果您尝试通过 DOM 而不是 eval(code) 等来评估脚本 - 请使用 SCRIPT 节点执行此操作:

var script = document.createElement('script');
script.textContent = 'alert(1)';
document.getElementById('divDynamicAdvert').appendChild(script);
// actually it doesnt matter where you append it

编辑

在任何情况下,创建一个脚本节点,然后使用它进行操作 - 向其添加脚本内容添加 src 属性(如果您引用外部源)

var script;
// content
script = document.createElement('script')
script.textContent = 'alert(1)'
document.body.appendChild(script);
// google api source
script = document.createElement('script');
script.src = 'ANY_URL';
// -> in this case, same as script.setAttribute('src', 'ANY_URL');
document.body.appendChild(script);

有一些进一步的问题,请随时在评论中提问。