1
1
/*!
2
- * jQuery Migrate - v1.1.1 - 2013-02-16
2
+ * jQuery Migrate - v1.2.0 - 2013-05-01
3
3
* https://github.com/jquery/jquery-migrate
4
4
* Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
5
5
*/
@@ -17,8 +17,8 @@ jQuery.migrateWarnings = [];
17
17
// jQuery.migrateMute = false;
18
18
19
19
// Show a message on the console so devs know we're active
20
- if ( ! jQuery . migrateMute && window . console && console . log ) {
21
- console . log ( "JQMIGRATE: Logging is active" ) ;
20
+ if ( ! jQuery . migrateMute && window . console && window . console . log ) {
21
+ window . console . log ( "JQMIGRATE: Logging is active" ) ;
22
22
}
23
23
24
24
// Set to false to disable traces that appear with warnings
@@ -33,10 +33,11 @@ jQuery.migrateReset = function() {
33
33
} ;
34
34
35
35
function migrateWarn ( msg ) {
36
+ var console = window . console ;
36
37
if ( ! warnedAbout [ msg ] ) {
37
38
warnedAbout [ msg ] = true ;
38
39
jQuery . migrateWarnings . push ( msg ) ;
39
- if ( window . console && console . warn && ! jQuery . migrateMute ) {
40
+ if ( console && console . warn && ! jQuery . migrateMute ) {
40
41
console . warn ( "JQMIGRATE: " + msg ) ;
41
42
if ( jQuery . migrateTrace && console . trace ) {
42
43
console . trace ( ) ;
@@ -189,26 +190,37 @@ jQuery.attrHooks.value = {
189
190
var matched , browser ,
190
191
oldInit = jQuery . fn . init ,
191
192
oldParseJSON = jQuery . parseJSON ,
193
+ rignoreText = / ^ [ ^ < ] * ( .* ?) [ ^ > ] * $ / ,
192
194
// Note this does NOT include the #9521 XSS fix from 1.7!
193
- rquickExpr = / ^ (?: [ ^ < ] * ( < [ \w \W ] + > ) [ ^ > ] * | # ( [ \w \- ] * ) ) $ / ;
195
+ rquickExpr = / ^ [ ^ < ] * < [ \w \W ] + > [ ^ > ] * $ / ;
194
196
195
197
// $(html) "looks like html" rule change
196
198
jQuery . fn . init = function ( selector , context , rootjQuery ) {
197
199
var match ;
198
200
199
201
if ( selector && typeof selector === "string" && ! jQuery . isPlainObject ( context ) &&
200
- ( match = rquickExpr . exec ( selector ) ) && match [ 1 ] ) {
202
+ ( match = rquickExpr . exec ( selector ) ) && match [ 0 ] ) {
201
203
// This is an HTML string according to the "old" rules; is it still?
202
204
if ( selector . charAt ( 0 ) !== "<" ) {
203
205
migrateWarn ( "$(html) HTML strings must start with '<' character" ) ;
204
206
}
207
+ if ( selector . charAt ( selector . length - 1 ) !== ">" ) {
208
+ migrateWarn ( "$(html) HTML text after last tag is ignored" ) ;
209
+ }
210
+ // Consistently reject any HTML-like string starting with a hash (#9521)
211
+ // Note that this may break jQuery 1.6.x code that otherwise would work.
212
+ if ( jQuery . trim ( selector ) . charAt ( 0 ) === "#" ) {
213
+ migrateWarn ( "HTML string cannot start with a '#' character" ) ;
214
+ jQuery . error ( "JQMIGRATE: Invalid selector string (XSS)" ) ;
215
+ }
205
216
// Now process using loose rules; let pre-1.8 play too
206
217
if ( context && context . context ) {
207
218
// jQuery object as context; parseHTML expects a DOM object
208
219
context = context . context ;
209
220
}
210
221
if ( jQuery . parseHTML ) {
211
- return oldInit . call ( this , jQuery . parseHTML ( jQuery . trim ( selector ) , context , true ) ,
222
+ match = rignoreText . exec ( selector ) ;
223
+ return oldInit . call ( this , jQuery . parseHTML ( match [ 1 ] || selector , context , true ) ,
212
224
context , rootjQuery ) ;
213
225
}
214
226
}
0 commit comments