Strip # from IDs, IE doesn't seem to like them
authorAryeh Gregor <simetrical@users.mediawiki.org>
Mon, 8 Feb 2010 20:15:32 +0000 (20:15 +0000)
committerAryeh Gregor <simetrical@users.mediawiki.org>
Mon, 8 Feb 2010 20:15:32 +0000 (20:15 +0000)
includes/Sanitizer.php

index 8102843..8533990 100644 (file)
@@ -857,6 +857,7 @@ class Sanitizer {
         *
         * To ensure we don't have to bother escaping anything, we also strip ', ",
         * & even if $wgExperimentalIds is true.  TODO: Is this the best tactic?
+        * We also strip # because it upsets IE6.
         *
         * @see http://www.w3.org/TR/html401/types.html#type-name Valid characters
         *                                                          in the id and
@@ -882,7 +883,7 @@ class Sanitizer {
 
                if ( $wgHtml5 && $wgExperimentalHtmlIds && !in_array( 'legacy', $options ) ) {
                        $id = Sanitizer::decodeCharReferences( $id );
-                       $id = preg_replace( '/[ \t\n\r\f_\'"&]+/', '_', $id );
+                       $id = preg_replace( '/[ \t\n\r\f_\'"&#]+/', '_', $id );
                        $id = trim( $id, '_' );
                        if ( $id === '' ) {
                                # Must have been all whitespace to start with.