diff options
author | jaubourg <j@ubourg.net> | 2012-03-07 09:54:25 +0100 |
---|---|---|
committer | jaubourg <j@ubourg.net> | 2012-03-07 09:54:52 +0100 |
commit | 318d47b730769f538dbc24800b9ad67ff8e73ea9 (patch) | |
tree | 2fb0dff90d86d94f114873ba11c032bf85af84b7 | |
parent | 92a92be10f2c6eecc93e0def9001a2ef2852fde1 (diff) | |
download | jquery-318d47b730769f538dbc24800b9ad67ff8e73ea9.tar.gz jquery-318d47b730769f538dbc24800b9ad67ff8e73ea9.zip |
No more php/js logic duplication. Ensures modules are still loaded separately when using "file:" protocol (makes debugging much easier, /kiss @rwaldron). Ensures test iframes will use the same jquery as specified in the main document. Known issue: chrome will cringe at cross-frame access using file: protocol, apparently chrome sees this as cross-domain... go figure.
-rw-r--r-- | test/data/include_js.php | 162 |
1 files changed, 59 insertions, 103 deletions
diff --git a/test/data/include_js.php b/test/data/include_js.php index 23207a9d9..1e12588eb 100644 --- a/test/data/include_js.php +++ b/test/data/include_js.php @@ -1,106 +1,62 @@ -/* -<?php -// if php is available, close the comment so PHP can echo the appropriate JS -echo "*" . "/"; - -// initialize vars -$output = ""; -$version = ""; - -// extract vars from referrer to determine version -if(isset($_SERVER['HTTP_REFERER'])){ - $referrer = $_SERVER['HTTP_REFERER']; - $referrer_query_string = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY ); - parse_str($referrer_query_string, $referrer_params); - - if(isset($referrer_params['jquery'])){ - $version = $referrer_params['jquery']; - } +(function() { + +window.hasPHP = false /* <?php echo "*" + "/ || true /*"; ?> */; + +if ( !window.top.jQueryIncludes ) { + + window.top.jQueryIncludes = (function() { + + var location = window.top.document.location.href, + baseURL = location.replace( /\/test\/.+/, "/"), + version = /(?:&|\?)jquery=([^&]+?)(?:$|&)/.exec( location ), + includes, i; + + if ( version ) { + version = version[ 1 ]; + if( version === "min" ) { + includes = [ baseURL + "dist/jquery.min.js" ]; + } else if( version === "dist" ) { + includes = [ baseURL + "dist/jquery.js" ]; + } else { + includes = [ "http://code.jquery.com/jquery-" + version + ".js" ]; + } + } else { + includes = [ + "core", + "callbacks", + "deferred", + "support", + "data", + "queue", + "attributes", + "event", + "sizzle/sizzle", + "sizzle-jquery", + "traversing", + "manipulation", + "css", + "ajax", + "ajax/jsonp", + "ajax/script", + "ajax/xhr", + "effects", + "offset", + "dimensions", + "exports" + ]; + for ( i = includes.length; i--; ) { + includes[ i ] = baseURL + "src/" + includes[ i ] + ".js"; + } + } + + for ( i = includes.length; i--; ) { + includes[ i ] = "<script src='" + includes[ i ] + "'><" + "/script>"; + } + + return includes.join( "\n" ); + })(); } -// load up built versions of jquery -if( $version === "min" ) { - $output = @file_get_contents("../../dist/jquery.min.js"); -}elseif( $version === "dist" ) { - $output = @file_get_contents("../../dist/jquery.js"); -}elseif( ctype_digit( substr( $version, 0, 1 )) || $version === "git" ) { - $output = "document.write('<script src=\"http://code.jquery.com/jquery-" . $version . ".js\"><'+'/script>');"; -} - -// the concatenated version of the the src files is both the default and the fallback -// because it does not require you to "make" jquery for it to update -if( $output === "" ) { - $files = array( - "intro", - "core", - "callbacks", - "deferred", - "support", - "data", - "queue", - "attributes", - "event", - "sizzle/sizzle", - "sizzle-jquery", - "traversing", - "manipulation", - "css", - "ajax", - "ajax/jsonp", - "ajax/script", - "ajax/xhr", - "effects", - "offset", - "dimensions", - "exports", - "outro" - ); - - foreach ( $files as $file ) { - $output .= file_get_contents( "../../src/" . $file . ".js" ); - } - - $output = str_replace( "(function( jQuery ) {", "", $output ); - $output = str_replace( "})( jQuery );", "", $output ); -} - -echo $output; -die(); -?> -*/ - -hasPHP = false; - -// javascript fallback using src files in case this is not run on a PHP server! -// please note that this fallback is for convenience only, and is not fully supported -// i.e. don't expect all of the tests to work properly -var baseURL = document.location.href.replace( /\/test\/.+/, "/"), - files = [ - "core", - "callbacks", - "deferred", - "support", - "data", - "queue", - "attributes", - "event", - "sizzle/sizzle", - "sizzle-jquery", - "traversing", - "manipulation", - "css", - "ajax", - "ajax/jsonp", - "ajax/script", - "ajax/xhr", - "effects", - "offset", - "dimensions", - "exports" - ], - len = files.length, - i = 0; +document.write( window.top.jQueryIncludes ); -for ( ; i < len; i++ ) { - document.write("<script src=\"" + baseURL + "src/" + files[ i ] + ".js\"><"+"/script>"); -}
\ No newline at end of file +})(); |