2013-02-26 72 views
0

我使用这个脚本(是否有document.write,你可以访问src来查看它),它在我的页面的HTML序列中一到达就花时间加载:用jQuery Ajax显示成功脚本

<script type="text/javascript" src="http://pkmncards.disqus.com/recent_comments_widget.js?num_items=25"></script> 

这样可以防止脚本在加载后第二个或两个加载脚本后出现任何错误,所以我想通过jQuery Ajax加载它来防止挂断。

这是我已经尝试:

var $j = jQuery.noConflict(); 
$j(document).ready(function() { 
    $j.ajax({ 
     url: "http://pkmncards.disqus.com/recent_comments_widget.js?num_items=25", 
     dataType: "script", 
     success: function (data) { 
      $j("#recent-discussion").html(data) 
     } 
    }); 
}); 

但是我没有正确处理成功。我看到请求加载,但它什么也没做。我希望它运行脚本并将document.write输出到目标#recent-discussion中。

我仍然在寻找例子,但不知道我在做什么错...任何帮助非常感谢!

+1

难道你不能简单地将脚本标签移动到底部吗? – mgibsonbr 2013-02-26 20:01:18

+2

您正在转换不是HTML的“脚本”数据类型。 – crush 2013-02-26 20:01:54

+1

你从数据类型:“脚本”,但试图直接加载数据作为一个div的HTML?你实际上是收到一个脚本,还是它的HTML? – DavidDraughn 2013-02-26 20:02:14

回答

2

加载页面后,您无法执行document.write。通过使用document.write的AJAX调用加载的任何脚本都无法正常工作。

+0

我认为这可能是一个组合,加上我试图将脚本转换为HTML。谢谢大家的回复! – 2013-02-26 20:21:35

1

您的ajax调用看起来是正确的,并且您实际上不需要在success回调中执行任何操作 - 脚本将在当时开始执行(but not necessarily so)。

如果它不工作,检查它是否正确加载(可能在ajax调用中使用error回调)。顺便说一句,这个脚本与你的主页在同一个域中?您可以加载来自不同域的脚本,但通常无法对它们进行ajax调用(由于同源策略)。

我想让它运行脚本并将document.write输出到目标#recent-discussion中。

我不认为这实际上可能......如果这是你的脚本需要做什么,你不能改变它,恐怕有一点你可以做(​​短的猴子修补document.write , 那是)。

+0

脚本位于第三方域名中,对我来说又是一个骗局。 – 2013-02-26 20:22:39