@@ -45,7 +45,7 @@ jQuery.urlencode = encodeURIComponent;
4545 * it will always return arrays of strings for the value parts.
4646 */
4747jQuery . getQueryParameters = function ( s ) {
48- if ( typeof s == 'undefined' )
48+ if ( typeof s === 'undefined' )
4949 s = document . location . search ;
5050 var parts = s . substr ( s . indexOf ( '?' ) + 1 ) . split ( '&' ) ;
5151 var result = { } ;
@@ -66,29 +66,53 @@ jQuery.getQueryParameters = function(s) {
6666 * span elements with the given class name.
6767 */
6868jQuery . fn . highlightText = function ( text , className ) {
69- function highlight ( node ) {
70- if ( node . nodeType == 3 ) {
69+ function highlight ( node , addItems ) {
70+ if ( node . nodeType === 3 ) {
7171 var val = node . nodeValue ;
7272 var pos = val . toLowerCase ( ) . indexOf ( text ) ;
7373 if ( pos >= 0 && ! jQuery ( node . parentNode ) . hasClass ( className ) ) {
74- var span = document . createElement ( "span" ) ;
75- span . className = className ;
74+ var span ;
75+ var isInSVG = jQuery ( node ) . closest ( "body, svg, foreignObject" ) . is ( "svg" ) ;
76+ if ( isInSVG ) {
77+ span = document . createElementNS ( "http://www.w3.org/2000/svg" , "tspan" ) ;
78+ } else {
79+ span = document . createElement ( "span" ) ;
80+ span . className = className ;
81+ }
7682 span . appendChild ( document . createTextNode ( val . substr ( pos , text . length ) ) ) ;
7783 node . parentNode . insertBefore ( span , node . parentNode . insertBefore (
7884 document . createTextNode ( val . substr ( pos + text . length ) ) ,
7985 node . nextSibling ) ) ;
8086 node . nodeValue = val . substr ( 0 , pos ) ;
87+ if ( isInSVG ) {
88+ var bbox = span . getBBox ( ) ;
89+ var rect = document . createElementNS ( "http://www.w3.org/2000/svg" , "rect" ) ;
90+ rect . x . baseVal . value = bbox . x ;
91+ rect . y . baseVal . value = bbox . y ;
92+ rect . width . baseVal . value = bbox . width ;
93+ rect . height . baseVal . value = bbox . height ;
94+ rect . setAttribute ( 'class' , className ) ;
95+ var parentOfText = node . parentNode . parentNode ;
96+ addItems . push ( {
97+ "parent" : node . parentNode ,
98+ "target" : rect } ) ;
99+ }
81100 }
82101 }
83102 else if ( ! jQuery ( node ) . is ( "button, select, textarea" ) ) {
84103 jQuery . each ( node . childNodes , function ( ) {
85- highlight ( this ) ;
104+ highlight ( this , addItems ) ;
86105 } ) ;
87106 }
88107 }
89- return this . each ( function ( ) {
90- highlight ( this ) ;
108+ var addItems = [ ] ;
109+ var result = this . each ( function ( ) {
110+ highlight ( this , addItems ) ;
91111 } ) ;
112+ for ( var i = 0 ; i < addItems . length ; ++ i ) {
113+ jQuery ( addItems [ i ] . parent ) . before ( addItems [ i ] . target ) ;
114+ }
115+ return result ;
92116} ;
93117
94118/*
@@ -131,21 +155,21 @@ var Documentation = {
131155 * i18n support
132156 */
133157 TRANSLATIONS : { } ,
134- PLURAL_EXPR : function ( n ) { return n == 1 ? 0 : 1 ; } ,
158+ PLURAL_EXPR : function ( n ) { return n === 1 ? 0 : 1 ; } ,
135159 LOCALE : 'unknown' ,
136160
137161 // gettext and ngettext don't access this so that the functions
138162 // can safely bound to a different name (_ = Documentation.gettext)
139163 gettext : function ( string ) {
140164 var translated = Documentation . TRANSLATIONS [ string ] ;
141- if ( typeof translated == 'undefined' )
165+ if ( typeof translated === 'undefined' )
142166 return string ;
143- return ( typeof translated == 'string' ) ? translated : translated [ 0 ] ;
167+ return ( typeof translated === 'string' ) ? translated : translated [ 0 ] ;
144168 } ,
145169
146170 ngettext : function ( singular , plural , n ) {
147171 var translated = Documentation . TRANSLATIONS [ singular ] ;
148- if ( typeof translated == 'undefined' )
172+ if ( typeof translated === 'undefined' )
149173 return ( n == 1 ) ? singular : plural ;
150174 return translated [ Documentation . PLURALEXPR ( n ) ] ;
151175 } ,
@@ -216,7 +240,7 @@ var Documentation = {
216240 var src = $ ( this ) . attr ( 'src' ) ;
217241 var idnum = $ ( this ) . attr ( 'id' ) . substr ( 7 ) ;
218242 $ ( 'tr.cg-' + idnum ) . toggle ( ) ;
219- if ( src . substr ( - 9 ) == 'minus.png' )
243+ if ( src . substr ( - 9 ) === 'minus.png' )
220244 $ ( this ) . attr ( 'src' , src . substr ( 0 , src . length - 9 ) + 'plus.png' ) ;
221245 else
222246 $ ( this ) . attr ( 'src' , src . substr ( 0 , src . length - 8 ) + 'minus.png' ) ;
@@ -248,7 +272,7 @@ var Documentation = {
248272 var path = document . location . pathname ;
249273 var parts = path . split ( / \/ / ) ;
250274 $ . each ( DOCUMENTATION_OPTIONS . URL_ROOT . split ( / \/ / ) , function ( ) {
251- if ( this == '..' )
275+ if ( this === '..' )
252276 parts . pop ( ) ;
253277 } ) ;
254278 var url = parts . join ( '/' ) ;
0 commit comments