This repository was archived by the owner on Jan 24, 2019. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +40
-2
lines changed Expand file tree Collapse file tree 2 files changed +40
-2
lines changed Original file line number Diff line number Diff line change 2
2
$js - asynchronous module definition framework
3
3
or just simple lightweight javascript dependencies manager
4
4
5
- @version 3.1
5
+ @version 3.2
6
6
@link http://github.com/redcatphp/js/
7
7
@author Jo Surikat <jo@surikat.pro>
8
8
@website http://redcatphp.com
552
552
$js ( module , loadModuleDomElement ) ;
553
553
}
554
554
} ;
555
+ var onExists = function ( s , y , n , sync ) {
556
+ sync = sync ?true :false ;
557
+ if ( s instanceof Array ) {
558
+ s . reverse ( ) ;
559
+ var ev = '$js(s' + ( sync ?',true' :'' ) + ',y);' ;
560
+ for ( var i = 0 ; i < s . length ; i ++ ) {
561
+ ev = '$js.onExists("' + s [ i ] + '",function(){' + ev + '},n);' ;
562
+ }
563
+ eval ( ev ) ;
564
+ return ;
565
+ }
566
+ var url = getSrc ( s ) ;
567
+ var httpRequest ;
568
+ if ( w . XMLHttpRequest ) {
569
+ httpRequest = new XMLHttpRequest ( ) ;
570
+ }
571
+ else if ( w . ActiveXObject ) {
572
+ try {
573
+ httpRequest = new ActiveXObject ( "Msxml2.XMLHTTP" ) ;
574
+ }
575
+ catch ( e ) {
576
+ httpRequest = new ActiveXObject ( "Microsoft.XMLHTTP" ) ;
577
+ }
578
+ }
579
+ httpRequest . open ( 'HEAD' , url , true ) ;
580
+ httpRequest . onreadystatechange = function ( ) {
581
+ if ( httpRequest . readyState == 4 ) {
582
+ if ( httpRequest . status != 404 ) {
583
+ $js ( s , sync , y ) ;
584
+ }
585
+ else {
586
+ n ( ) ;
587
+ }
588
+ }
589
+ } ;
590
+ httpRequest . send ( ) ;
591
+ } ;
555
592
$js = ( function ( ) {
556
593
557
594
//invoker
750
787
}
751
788
}
752
789
} ;
790
+ js . onExists = onExists ;
753
791
return js ;
754
792
} ) ( ) ;
755
793
var y = { } ;
You can’t perform that action at this time.
0 commit comments