mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Data: Don't expose jQuery.acceptData
jQuery.acceptData is an undocumented internal API that shouldn't be exposed. Fixes gh-2555
This commit is contained in:
parent
02e10082b2
commit
224271982e
@ -1,15 +1,14 @@
|
||||
define( [
|
||||
"../core",
|
||||
"../var/rnotwhite",
|
||||
"./accepts"
|
||||
], function( jQuery, rnotwhite ) {
|
||||
"./var/acceptData"
|
||||
], function( jQuery, rnotwhite, acceptData ) {
|
||||
|
||||
function Data() {
|
||||
this.expando = jQuery.expando + Data.uid++;
|
||||
}
|
||||
|
||||
Data.uid = 1;
|
||||
Data.accepts = jQuery.acceptData;
|
||||
|
||||
Data.prototype = {
|
||||
|
||||
@ -38,7 +37,7 @@ Data.prototype = {
|
||||
// We can accept data for non-element nodes in modern browsers,
|
||||
// but we should not, see #8335.
|
||||
// Always return an empty object.
|
||||
if ( !Data.accepts( owner ) ) {
|
||||
if ( !acceptData( owner ) ) {
|
||||
return {};
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,9 @@
|
||||
define( [
|
||||
"../core"
|
||||
], function( jQuery ) {
|
||||
define( function() {
|
||||
|
||||
/**
|
||||
* Determines whether an object can have data
|
||||
*/
|
||||
jQuery.acceptData = function( owner ) {
|
||||
|
||||
return function( owner ) {
|
||||
// Accepts only:
|
||||
// - Node
|
||||
// - Node.ELEMENT_NODE
|
||||
@ -17,5 +14,4 @@ jQuery.acceptData = function( owner ) {
|
||||
return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
|
||||
};
|
||||
|
||||
return jQuery.acceptData;
|
||||
} );
|
10
src/event.js
10
src/event.js
@ -6,11 +6,11 @@ define( [
|
||||
"./var/slice",
|
||||
"./event/support",
|
||||
"./data/var/dataPriv",
|
||||
"./data/var/acceptData",
|
||||
|
||||
"./core/init",
|
||||
"./data/accepts",
|
||||
"./selector"
|
||||
], function( jQuery, document, rnotwhite, hasOwn, slice, support, dataPriv ) {
|
||||
], function( jQuery, document, rnotwhite, hasOwn, slice, support, dataPriv, acceptData ) {
|
||||
|
||||
var
|
||||
rkeyEvent = /^key/,
|
||||
@ -376,7 +376,7 @@ jQuery.event = {
|
||||
|
||||
// Native handler
|
||||
handle = ontype && cur[ ontype ];
|
||||
if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
|
||||
if ( handle && handle.apply && acceptData( cur ) ) {
|
||||
event.result = handle.apply( cur, data );
|
||||
if ( event.result === false ) {
|
||||
event.preventDefault();
|
||||
@ -389,8 +389,8 @@ jQuery.event = {
|
||||
if ( !onlyHandlers && !event.isDefaultPrevented() ) {
|
||||
|
||||
if ( ( !special._default ||
|
||||
special._default.apply( eventPath.pop(), data ) === false ) &&
|
||||
jQuery.acceptData( elem ) ) {
|
||||
special._default.apply( eventPath.pop(), data ) === false ) &&
|
||||
acceptData( elem ) ) {
|
||||
|
||||
// Call a native DOM method on the target with the same name name as the event.
|
||||
// Don't do default actions on window, that's where global variables be (#6170)
|
||||
|
@ -14,16 +14,16 @@ define( [
|
||||
|
||||
"./data/var/dataPriv",
|
||||
"./data/var/dataUser",
|
||||
"./data/var/acceptData",
|
||||
|
||||
"./core/init",
|
||||
"./data/accepts",
|
||||
"./traversing",
|
||||
"./selector",
|
||||
"./event"
|
||||
], function( jQuery, concat, push, access,
|
||||
rcheckableType, rtagName, rscriptType,
|
||||
wrapMap, getAll, setGlobalEval, buildFragment, support,
|
||||
dataPriv, dataUser ) {
|
||||
dataPriv, dataUser, acceptData ) {
|
||||
|
||||
var
|
||||
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
|
||||
@ -273,7 +273,7 @@ jQuery.extend( {
|
||||
i = 0;
|
||||
|
||||
for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
|
||||
if ( jQuery.acceptData( elem ) ) {
|
||||
if ( acceptData( elem ) ) {
|
||||
if ( ( data = elem[ dataPriv.expando ] ) ) {
|
||||
if ( data.events ) {
|
||||
for ( type in data.events ) {
|
||||
|
@ -819,32 +819,31 @@ QUnit.test( ".data doesn't throw when calling selection is empty. #13551", funct
|
||||
}
|
||||
} );
|
||||
|
||||
QUnit.test( "jQuery.acceptData", function( assert ) {
|
||||
QUnit.test( "acceptData", function( assert ) {
|
||||
assert.expect( 10 );
|
||||
|
||||
var flash, pdf;
|
||||
var flash, pdf, form;
|
||||
|
||||
assert.ok( jQuery.acceptData( document ), "document" );
|
||||
assert.ok( jQuery.acceptData( document.documentElement ), "documentElement" );
|
||||
assert.ok( jQuery.acceptData( {} ), "object" );
|
||||
assert.ok( jQuery.acceptData( document.createElement( "embed" ) ), "embed" );
|
||||
assert.equal( 42, jQuery( document ).data( "test", 42 ).data( "test" ), "document" );
|
||||
assert.equal( 42, jQuery( document.documentElement ).data( "test", 42 ).data( "test" ), "documentElement" );
|
||||
assert.equal( 42, jQuery( {} ).data( "test", 42 ).data( "test" ), "object" );
|
||||
assert.equal( 42, jQuery( document.createElement( "embed" ) ).data( "test", 42 ).data( "test" ), "embed" );
|
||||
|
||||
flash = document.createElement( "object" );
|
||||
flash.setAttribute( "classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" );
|
||||
assert.ok( jQuery.acceptData( flash ), "flash" );
|
||||
assert.equal( 42, jQuery( flash ).data( "test", 42 ).data( "test" ), "flash" );
|
||||
|
||||
pdf = document.createElement( "object" );
|
||||
pdf.setAttribute( "classid", "clsid:CA8A9780-280D-11CF-A24D-444553540000" );
|
||||
assert.ok( jQuery.acceptData( pdf ), "pdf" );
|
||||
assert.equal( 42, jQuery( pdf ).data( "test", 42 ).data( "test" ), "pdf" );
|
||||
|
||||
assert.ok( !jQuery.acceptData( document.createComment( "" ) ), "comment" );
|
||||
assert.ok( !jQuery.acceptData( document.createTextNode( "" ) ), "text" );
|
||||
assert.ok( !jQuery.acceptData( document.createDocumentFragment() ), "documentFragment" );
|
||||
assert.equal( undefined, jQuery( document.createComment( "" ) ).data( "test", 42 ).data( "test" ), "comment" );
|
||||
assert.equal( undefined, jQuery( document.createTextNode( "" ) ).data( "test", 42 ).data( "test" ), "text" );
|
||||
assert.equal( undefined, jQuery( document.createDocumentFragment() ).data( "test", 42 ).data( "test" ), "documentFragment" );
|
||||
|
||||
assert.ok( jQuery.acceptData(
|
||||
jQuery( "#form" ).append( "<input id='nodeType'/><input id='nodeName'/>" )[ 0 ] ),
|
||||
"form with aliased DOM properties" );
|
||||
} );
|
||||
form = jQuery( "#form" ).append( "<input id='nodeType'/><input id='nodeName'/>" )[ 0 ];
|
||||
assert.equal( 42, jQuery( form ) .data( "test", 42 ).data( "test" ), "form with aliased DOM properties" );
|
||||
});
|
||||
|
||||
QUnit.test( "Check proper data removal of non-element descendants nodes (#8335)", function( assert ) {
|
||||
assert.expect( 1 );
|
||||
|
Loading…
Reference in New Issue
Block a user