如何将动态插入的标记告诉…运行

我正在动态插入带有src属性且没有内容的标记。 但是浏览器没有下拉src并在插入后运行脚本 – 标签就位于DOM中。

我可以告诉浏览器“运行”脚本标签吗?

由于我正在使用的其他代码,我更容易通过src属性保留代码而不是自己获取代码并将其插入到标记的正文中 – 但如果这是必要的,我也可以这样做(并欢迎任何建议)。

更新请求的信息

  1. 在页面加载后,基于用户交互插入脚本标记任意次数
  2. 我插入了这样的标签(jquery的html函数剥离脚本标签): document.getElementById("my-div").innerHTML = "the script tag, which stack overflow wants to strip";

尝试以下代码::它的工作原理

  var script = document.createElement( 'script' ); script.type = 'text/javascript'; script.src =MY_URL; $("#YOUR_ELEMNT_ID").append( script ); 

它应该在浏览器将脚本插入dom后立即运行,但您可以尝试将脚本包装到函数中并在脚本加载后调用该函数:

 var script = document.createElement('script'); script.setAttribute('type','text/javascript'); script.setAttribute('src',script_url); script.onreadystatechange= function () { if (this.readyState == 'complete') initScript();//the whole script is wrapped in this function } script.onload= initScript; 

希望这可以帮助!

您可以在主脚本中使用setTimeout来检查新脚本是否存在..如果是,则运行它。 你知道它是下载文件还是只是什么都没有? 查看Chrome的网络监视器。

我认为有一种动态的方式来加载没有src =标签的Javascript,但我没有亲自完成它。

为什么不预先加载所有的javascript,只是通过一些内联JS来执行它?