That's a good, workable solution!
Cheers,
Dan
Christof Donat wrote:
>
> Hi,
>
>> I'm afraid that I simply don't take Safari users into account. Hardly a
>> great thing, but I focus on three browsers: Firefox and IE7, and then
>> IE6.
>> In that order. The work I do is targetted at corporate users who run
>> Windows 2000 and Firefox, and all the JS work I do is for those users.
>
> Then your solution is almost OK for you. Here is a usable version ;-)
>
> (function() {
> var addScriptCounter = 0;
>
> function addScript( url, callback ) {
> var script = document.createElement( 'script' );
> script.myLoadHandler = callback;
> script.id = 'dynamicallyLoadedScript_'+addScriptCounter;
> script.type = 'text/javascript';
> script.charset = 'utf-8';
> script.src = url;
>
> var script2 = document.createElement( 'script' );
> script2.type = 'text/javascript';
> script2.charset = 'utf-8';
> script2.appendChild(
> document.createTextNode(
> '(function(){'+
> 'document.getElementById(\'dynamicallyLoadedScript_'+
> addScriptCounter+'\').myLoadHandler();})()';
> ));
>
> var head = document.getElementsByTagName('head')[0];
> head.appendChild( script );
> head.appendChild( script2 );
>
> addScriptCounter++;
> }
> })()
>
> Usage:
>
> addScript('jquery.js', function() {
> alert('horay, jQuery is available');
> });
> alert('jQuery is not necessarily available here');
>
> The second script tag will be evaluated after the first one has been
> loaded
> and evaluated. At least that works for all browsers I have tested with,
> except those Safari versions and very old browsers without a usable DOM
> implementation.
>
> If jQuery cannot be loaded successfully (wrong url e.g.), your callback
> will
> still be called, and will fail as soon as it tries to access jQuery.
>
> If you use a XMLHttpRequest, you can distinguish the case when loading was
> not
> successfull from successfull loading before you really call the callback.
> By
> the way you also get it working for Safari, but keep out those browsers
> without a XMLHttpRequest implementation. For them jsPax falls back to
> adding
> script tags via DOM.
>
> That does not work only for the very old browsers without a usable DOM
> implementation. There is also a fallback for them in jsPax, but I have not
> really tested it, because I don't have such a browser at hand -
> theoretically
> it should work.
>
> Christof
>
> _______________________________________________
> jQuery mailing list
> [email protected]
> http://jquery.com/discuss/
>
>
--
View this message in context:
http://www.nabble.com/dynamic-loading-of-jquery.js-into-my-web-page-tf2905089.html#a8167439
Sent from the JQuery mailing list archive at Nabble.com.
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/