【问题标题】:How to document.write to parent element when external javascript called调用外部javascript时如何将document.write写入父元素
【发布时间】:2015-08-03 12:21:46
【问题描述】:

您好,我的问题是当父元素未知时,如何使用 document.write 编写名为父元素的脚本

您可以将其视为广告脚本

例如:

<div>
<script src="http://www.pokemonpets.com/scripts/ads_simple.js"></script>
</div>

我的脚本代码在下面,但现在无法正常工作

document.write('<a title="Bedava Pokemon Online Oyunu" target="_blank" href="http://www.pokemonpets.com/Register"><img src="http://orig04.deviantart.net/58d0/f/2015/213/8/4/pokemonpets_by_monstermmorpg-d93plr1.png" /></a>');

所以我必须在不知道父元素或不知道页面是否有 JQuery 的情况下让它工作。

广告公司如何处理这个问题?

【问题讨论】:

  • 请定义“不工作”。仅供参考,document.write 不知道“父元素”,它只是在代码调用它的脚本标记之后立即写入。
  • 这里似乎可以正常工作:jsbin.com/wisatanefu/1/edit?html,output
  • 不要使用document.write
  • @Quentin 原来我尝试的页面不起作用你是对的:D
  • @shortnamed 我能用什么?

标签: javascript html domdocument


【解决方案1】:

您不想使用 document.write,您想找到您的脚本标签并将其替换为您的新内容。您可以通过查找带有您的 URL 的脚本标签,然后让它的父级替换它来做到这一点。

scripts = document.getElementsByTagName("script");
for(var i in scripts){
   if(scripts[i].src.indexOf('//www.pokemonpets.com/scripts/ads_simple.js') !== -1){
      var wrapper = document.createElement('div');
      wrapper.innerHTML = '<a title="Bedava Pokemon Online Oyunu" target="_blank" href="http://www.pokemonpets.com/Register"><img src="http://orig04.deviantart.net/58d0/f/2015/213/8/4/pokemonpets_by_monstermmorpg-d93plr1.png" /></a>';
      scripts[i].parentElement.replaceChild(wrapper,scripts[i]);
   }
}

这是完全未经测试的,甚至没有语法,所以你可能需要稍微摆弄一下。

【讨论】:

    猜你喜欢
    • 2012-04-11
    • 2019-06-10
    • 2018-05-05
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多