我一直在遇到问题 .getScript 在某些奇怪的情况下工作。

例如,这只能在需要时加载脚本。

function twitterSDK() {
    $jQ.getScript('http://platform.twitter.com/widgets.js');
}

function diggShare() {
    $jQ.getScript('http://widgets.digg.com/buttons.js');
}

function buzzShare() {
    $jQ.getScript('http://www.google.com/buzz/api/button.js');
}

但是,它似乎对我编写的一些脚本没有用。如果我打电话 .getScript 要获取我上传到pastebin的JS文件( http://pastebin.com/gvfcmj4p )并打电话 tweetStream(); 什么都没发生。但是,如果我做以下操作,则有效:

var twitter = document.createElement('script');
twitter.type = 'text/javascript';
twitter.async = true;
twitter.src = '/path-to/tweet.js';
$jQ('.twitter-section').append(twitter);
tweetStream();

我究竟做错了什么?任何帮助都很棒,谢谢!

PS哪种方法更快或更有效?

注意:我的代码没有在Pastebin上托管,我只是将服务器上的.js文件的内容上传到该站点,因此很容易共享。我不是要托管的粘贴;)

有帮助吗?

解决方案

jQuery的 $jQ.getScript() 是一个异步电话。所以如果你打电话 tweetStream() 紧随其后 getScript(), ,它将在脚本到达之前运行。

你可以打电话 tweetStream() 来自(或AS)回调。

$jQ.getScript('/path-to/tweet.js', function() {
    tweetStream();
});

或如果您不关心的价值 thistweetStream().

$jQ.getScript('/path-to/tweet.js', tweetStream);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top