如何在jquery函数返回的脚本中执行脚本标记?

时间:2014-01-17 19:54:14

标签: javascript jquery html

我的一个客户希望在其余页面内容完全加载后执行脚本。

我建议使用以下jquery函数:

script>

$(window).load(function() {
$.getScript("http://jact.atdmt.com/jaction/JavaScriptTest");
});

</script>

只有在页面的其余部分加载后才会调用上面的脚本。但是,上面的脚本也应该在执行后调用另一个脚本。这看起来如下所示:

function AT_tags(){
  try{var tags = new Array();
    var imgs = new Array();
    tags = [];
    for(var i=0; i<tags.length; i++)
    { imgs[i] = new Image();
      imgs[i].src = tags[i];}
    this.csk='Test';
  }catch(e){this.csk='Error';}}
var AT_csk = new AT_tags();
document.write('<s'+'cript language="JavaScript" src="http://jact.atdmt.com/jaction/KamuiTag/"></scr'+'ipt>');

第二个脚本 - 表示jaction / KamuiTag - 在以这种方式调用第一个脚本时没有执行。

有人可以向我解释为什么脚本中使用上面的jquery函数执行的脚本不会被调用?

此外,有没有人有任何修正或建议?

谢谢,

2 个答案:

答案 0 :(得分:0)

您可以使用$.getScript()的回调,如下所示;

<script>

$(window).load(function() {
  $.getScript("http://jact.atdmt.com/jaction/JavaScriptTest", function() {
    function AT_tags(){
      try{var tags = new Array();
        var imgs = new Array();
        tags = [];
        for(var i=0; i<tags.length; i++)
        { imgs[i] = new Image();
          imgs[i].src = tags[i];}
        this.csk='Test';
      }catch(e){this.csk='Error';}}
      var AT_csk = new AT_tags();
      $.getScript("http://jact.atdmt.com/jaction/KamuiTag/");
  });
});

</script>

答案 1 :(得分:0)

尝试使用DOM。

document.head = document.head || document.getElementsByTagName('head')[0];
var js = document.createElement('script');
js.setAttribute('type','text/javascript');
js.setAttribute('src','http://jact.atdmt.com/jaction/KamuiTag/');
document.head.appendChild(js);