Pregunta

He tenido un problema para conseguir .getScript al trabajo en algunos casos raros.

Por ejemplo, esto funciona para cargar los scripts sólo cuando sea necesario.

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');
}

Sin embargo, no parece que el trabajo en unos pocos guiones que escribí. Si llamo .getScript a buscar este archivo JS He subido a Pastebin ( http://pastebin.com/GVFcMJ4P ) y la llamada tweetStream(); no pasa nada. Sin embargo, si hago lo siguiente funciona:

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

¿Qué estoy haciendo mal? Cualquier ayuda sería impresionante, gracias!

P.S. ¿Qué método es más rápido o más eficiente?

Nota: Mi código no se encuentra alojado en Pastebin, que acaba de subir el contenido del archivo .js que está en mi servidor a ese sitio por lo que es fácil de compartir. No estoy descargando de Pastebin para acoger;)

¿Fue útil?

Solución

$jQ.getScript() de jQuery es una llamada asincrónica. Así que si estuviera llamando a tweetStream() inmediatamente después de la getScript(), sería ejecutar antes de que llegara el guión.

Se puede llamar desde tweetStream() (o como) una devolución de llamada en su lugar.

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

o esto si no se preocupan por el valor de this en tweetStream().

$jQ.getScript('/path-to/tweet.js', tweetStream);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top