Don't setup mwsuggest when browsers cannot getElementById forms
authorDerk-Jan Hartman <hartman@users.mediawiki.org>
Sun, 16 May 2010 16:30:04 +0000 (16:30 +0000)
committerDerk-Jan Hartman <hartman@users.mediawiki.org>
Sun, 16 May 2010 16:30:04 +0000 (16:30 +0000)
This happens with Opera 8 for instance. Fixes bug 19586

RELEASE-NOTES
skins/common/mwsuggest.js

index 19a5119..a5a971b 100644 (file)
@@ -165,6 +165,7 @@ in a negative namespace (which is invalid).
   variable {{REVISIONMONTH1}} when unpadded version is needed.
 * Special:Userrights didn't recognize user as changing his/her own rights if user did not capitalize first letter of username.
 * (bug 23507) Add styles for printing wikitables
+* (bug 19586) Avoid JS errors in mwsuggest when using old browsers such as Opera 8.
 
 === API changes in 1.17 ===
 * (bug 22738) Allow filtering by action type on query=logevent
index 8f638c4..fb95631 100644 (file)
@@ -112,6 +112,11 @@ function os_MWSuggestInit() {
 /** Init Result objects and event handlers */
 function os_initHandlers( name, formname, element ) {
        var r = new os_Results( name, formname );
+       var formElement = document.getElementById( formname );
+       if( !formElement ) {
+               // Older browsers (Opera 8) cannot get form elements
+               return;
+       }
        // event handler
        os_hookEvent( element, 'keyup', function( event ) { os_eventKeyup( event ); } );
        os_hookEvent( element, 'keydown', function( event ) { os_eventKeydown( event ); } );
@@ -126,7 +131,7 @@ function os_initHandlers( name, formname, element ) {
                element.setAttribute( 'autocomplete', 'off' );
        }
        // stopping handler
-       os_hookEvent( document.getElementById( formname ), 'submit', function( event ) { return os_eventOnsubmit( event ); } );
+       os_hookEvent( formElement, 'submit', function( event ) { return os_eventOnsubmit( event ); } );
        os_map[name] = r;
        // toggle link
        if( document.getElementById( r.toggle ) == null ) {