From 19e0c2b6ac8b25994fd6f849743603168423bd4d Mon Sep 17 00:00:00 2001 From: Trevor Parscal Date: Tue, 5 Oct 2010 20:54:38 +0000 Subject: [PATCH] * Fixed mistake made in r74271 where some functions were moved from core jquery.wikiEditor into jquery.wikiEditor.iframe, causing errors for textarea mode. These changes properly split the functions, allowing the iframe to override the textarea functions, and using $.client to only execute them on IE. (tested in IE7) * Also fixed IE bug, where "delete window.myThing;" fails but "delete myThing;" succeeds. --- includes/ResourceLoaderModule.php | 4 ++-- resources/mediawiki/mediawiki.js | 7 +++---- resources/startup.js | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/includes/ResourceLoaderModule.php b/includes/ResourceLoaderModule.php index a87f83a687..22ab72727a 100644 --- a/includes/ResourceLoaderModule.php +++ b/includes/ResourceLoaderModule.php @@ -1123,11 +1123,11 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { // Startup function $configuration = FormatJson::encode( $this->getConfig( $context ) ); $registrations = self::getModuleRegistrations( $context ); - $out .= "window.startUp = function() {\n\t$registrations\n\tmediaWiki.config.set( $configuration );\n};"; + $out .= "var startUp = function() {\n\t$registrations\n\tmediaWiki.config.set( $configuration );\n};"; // Conditional script injection $scriptTag = Xml::escapeJsString( Html::linkedScript( $wgLoadScript . '?' . wfArrayToCGI( $query ) ) ); - $out .= "if ( isCompatible() ) {\n\tdocument.write( '$scriptTag' );\n}\ndelete window['isCompatible'];"; + $out .= "if ( isCompatible() ) {\n\tdocument.write( '$scriptTag' );\n}\ndelete isCompatible;"; } return $out; diff --git a/resources/mediawiki/mediawiki.js b/resources/mediawiki/mediawiki.js index 0c4422accb..8d4e03af24 100644 --- a/resources/mediawiki/mediawiki.js +++ b/resources/mediawiki/mediawiki.js @@ -758,10 +758,9 @@ window.mediaWiki = new ( function( $ ) { } )( jQuery ); - /* Auto-register from pre-loaded startup scripts */ -if ( typeof window['startUp'] === 'function' ) { - window['startUp'](); - delete window['startUp']; +if ( typeof startUp === 'function' ) { + startUp(); + delete startUp; } \ No newline at end of file diff --git a/resources/startup.js b/resources/startup.js index 93dd75eded..4ae8791420 100644 --- a/resources/startup.js +++ b/resources/startup.js @@ -14,7 +14,7 @@ * * Opera 9+ * * Chrome 1+ */ -window.isCompatible = function() { +var isCompatible = function() { // IE < 6 if ( navigator.appVersion.indexOf( 'MSIE' ) !== -1 && parseFloat( navigator.appVersion.split( 'MSIE' )[1] ) < 6 ) { return false; -- 2.20.1