动态注入javascript并使用它

时间:2013-02-17 11:38:41

标签: javascript

我还动态创建一个使用这些变量的javascript文件:

      function callbackF(data){
          console.log(data.script);

          document.getElementsByTagName('head')[0].innerHTML=data.script;

        var script = document.createElement("script");
    script.setAttribute("src", "http://widget.example.com/sprk.1.0.2.js");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("id", "grazit_script");
    document.getElementsByTagName('head')[0].appendChild(script);
        }

这就是我的想法:

这是打印到控制台日志的内容:

<script type='text/javascript'>var dbnwid=16476; var dbnpid=23369; var dbnwebid=19720; var dbnlayout=21; var dbncolor='#000000'; var dbntitlefontsize='14'; var dbnbgcolortype=1; var dbnheader='You might enjoy reading:'; var dbnremindercolor=2; var dbn_protocol = (('https:' == document.location.protocol) ? 'https://' : 'http://'); </script> 

然后是脚本:

<script src="http://widget.example.com/sprk.1.0.2.js" type="text/javascript" id="grazit_script"></script>

第二个脚本应该获取第二个脚本中的变量..但它不会......然后它会抱怨为什么它不会获取这些变量

  

更新:   下面这两种方式对我都没有用:

  eval(data.script);
           var ss= new Function(data.script)();

1 个答案:

答案 0 :(得分:2)

因为脚本在加载时会运行。使用script添加innerHTML代码不会在代码中运行代码。