javascript
  • html
  • ajax
  • dom
  • 2011-11-17 20 views 0 likes 
    0

    我在使用appendChild()追加<script>标记时未遇到新脚本标记中引用的JavaScript未运行的问题。在Firebug中,我得到一个通知,其中显示“重新加载页面以获取源代码”,但如果我重新加载JS,则会再次appendChild。如何在appendChild之后执行javascript代码

    这里是我的代码:

    var divAd = document.createElement("div"); 
    divAd.innerHTML = '<script src="http:example.com/adenseload.js" language="javascript" type="text/javascript"></script>'; 
    titleBak.appendChild(divAd); 
    

    如何使用附加的JS使用后的appendChild()?

    感谢您的回答。

    +0

    你确定src属性是正确的,加载后的js文件实际上调用了一个方法吗? –

    +0

    是的,当在另一个js中加载文档时,src是corrent.i'm appendChild()。 – viyancs

    回答

    3

    不要将它包装在div中,直接创建脚本标记。这对我有效:

    var scriptTag = document.createElement("script"); 
    scriptTag.src = "http://example.com/myscript.js"; 
    bodyTag.appendChild(scriptTag); 
    
    +0

    我认为你的代码是真的,但divAd.innerHTML = ajaxResult在我的情况下是来自ajax,所以我不能创建元素脚本,因为已经在结果中。 – viyancs

    +0

    您只能通过ajax而不是整个脚本标记来传递网址。 –

    +0

    你真的,为什么我不是那样的笨蛋......愚蠢的...我使用代码来获取来自JavaScript标记的src var adScript = ad.getElementsByTagName(“script”); var index = adScript.length - 1; var adsScr = adScript [index]; var src = adsSrc.src;' – viyancs

    1

    您必须使用以下语句才能加载JS,

    document.write('<script src="', 'http:example.com/adenseload.js', '" type="text/JavaScript"><\/script>');

    您可以将HTMLobjects仅附加到DIV,而不是脚本标记

    相关问题