mirror of
https://github.com/jquery/jquery.git
synced 2026-02-01 19:15:02 -05:00
Data: Work around IE11 bug with onpageshow attribute
Fixes #14894
(cherry picked from commit b8133e282c)
Conflicts:
src/data.js
test/unit/data.js
This commit is contained in:
13
src/data.js
13
src/data.js
@@ -287,12 +287,15 @@ jQuery.fn.extend({
|
||||
if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
|
||||
i = attrs.length;
|
||||
while ( i-- ) {
|
||||
name = attrs[i].name;
|
||||
|
||||
if ( name.indexOf("data-") === 0 ) {
|
||||
name = jQuery.camelCase( name.slice(5) );
|
||||
|
||||
dataAttr( elem, name, data[ name ] );
|
||||
// Support: IE11+
|
||||
// The attrs elements can be null (#14894)
|
||||
if ( attrs[ i ] ) {
|
||||
name = attrs[ i ].name;
|
||||
if ( name.indexOf( "data-" ) === 0 ) {
|
||||
name = jQuery.camelCase( name.slice(5) );
|
||||
dataAttr( elem, name, data[ name ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
jQuery._data( elem, "parsedAttrs", true );
|
||||
|
||||
16
test/data/data/dataAttrs.html
Normal file
16
test/data/data/dataAttrs.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>IE11 onpageshow strangeness (#14894)</title>
|
||||
<script src="../../jquery.js"></script>
|
||||
<script>
|
||||
$(function(){
|
||||
window.parent.iframeCallback( $( "body" ).data().result );
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body x-what="test" data-result="ok" onload="x=1" onpageshow="x=1">
|
||||
Test for #14894
|
||||
</body>
|
||||
</html>
|
||||
@@ -677,3 +677,9 @@ test( "JSON data- attributes can have newlines", function() {
|
||||
equal( x.data("some").foo, "bar", "got a JSON data- attribute with spaces" );
|
||||
x.remove();
|
||||
});
|
||||
|
||||
testIframeWithCallback( "enumerate data attrs on body (#14894)", "data/dataAttrs.html", function( result ) {
|
||||
expect(1);
|
||||
|
||||
equal(result, "ok", "enumeration of data- attrs on body" );
|
||||
});
|
||||
Reference in New Issue
Block a user