I really try my best to avoid running  JQuery of this link :
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/ or any other external
source. wen i do i sometimes see my fade function dragging a bit. may be
include JQuery in your script ?

On Wed, Jun 17, 2009 at 11:12 PM, Paul Tarjan <ptar...@gmail.com> wrote:

>
> I'm writing a snippet of code to be put on any third party website and
> have NO idea what environment it will be dropped into. My end goal is
> for the badge to be
>
> <script src="http://example.com/js/badge.js";></script>
>
> I would like to use jQuery in my badge code to make my life easier,
> but I don't want to require another include on the client side
> (getting anything updated on the client is a pain).
>
> This is the best I could come up with. I don't want anything before or
> after my script to be affected with any leftover variables or weird
> collisions.
>
> Does anyone see any issues? Any better solutions? The main one I see
> is the time between the start of the anonymous function, and the end
> of checkLibs is not going to block other scripts which might rely on
> window.jQuery being available. Can you block other scripts in
> javascript?
>
>
>
> // Namespace
> if (typeof yourock == "undefined") yourock = {};
>
> // Api function
> yourock.popup = function(id) {
>    // Library isn't done loading
>    if (typeof(yourock.jQuery) == "undefined" || yourock.jQuery("*")
> === null) {
>        setTimeout(yourock.popup, 100);
>        return;
>    }
>    // Shorthand
>    var $ = yourock.jQuery;
>
>    // Do stuff
> }
>
> // Load libraries
> (function() {
>    // If jQuery exists, save it and delete it to know when mine is
> loaded
>    var old_jQuery = null;
>    if (typeof(jQuery) != "undefined") {
>        if (typeof(jQuery.noConflict) == "function") {
>            old_jQuery = jQuery;
>            delete jQuery;
>        }
>    }
>
>    var addLibs = function() {
>        var head = document.getElementsByTagName("head");
>        if (head.length == 0) {
>            setTimeout(addLibs, 100);
>            return;
>        }
>
>        var node = document.createElement("script");
>        node.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/
> jquery.min.js";
>        head[0].appendChild(node);
>        checkLibs();
>    }
>
>    var checkLibs = function() {
>        // Library isn't done loading
>        if (typeof(jQuery) == "undefined" || jQuery("*") === null) {
>            setTimeout(checkLibs, 100);
>            return;
>        }
>        yourock.jQuery = jQuery.noConflict(true);
>        jQuery = old_jQuery;
>    }
>
>    addLibs();
> })();

Reply via email to