aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.js
diff options
context:
space:
mode:
authorjeresig <jeresig@gmail.com>2010-09-24 16:24:07 -0400
committerjeresig <jeresig@gmail.com>2010-09-24 16:24:07 -0400
commit76db8a98220b6d76e98536b9578919bfb70048ed (patch)
tree00b921df3d9c974ab0a73266406b78921cabc041 /src/data.js
parentf10057bc481753d92ebfb8dfcef5197af5d76972 (diff)
downloadjquery-76db8a98220b6d76e98536b9578919bfb70048ed.tar.gz
jquery-76db8a98220b6d76e98536b9578919bfb70048ed.zip
Allow data to be bound to Flash objects (but still stopping short of attaching to applets. Fixes #6121.
Diffstat (limited to 'src/data.js')
-rw-r--r--src/data.js20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/data.js b/src/data.js
index ac082dd6e..448e24393 100644
--- a/src/data.js
+++ b/src/data.js
@@ -17,12 +17,13 @@ jQuery.extend({
// attempt to add expando properties to them.
noData: {
"embed": true,
- "object": true,
+ // Ban all objects except for Flash (which handle expandos)
+ "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
"applet": true
},
data: function( elem, name, data ) {
- if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+ if ( !jQuery.acceptData( elem ) ) {
return;
}
@@ -85,7 +86,7 @@ jQuery.extend({
},
removeData: function( elem, name ) {
- if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+ if ( !jQuery.acceptData( elem ) ) {
return;
}
@@ -126,6 +127,19 @@ jQuery.extend({
delete cache[ id ];
}
}
+ },
+
+ // A method for determining if a DOM node can handle the data expando
+ acceptData: function( elem ) {
+ if ( elem.nodeName ) {
+ match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+ if ( match ) {
+ return !(match === true || elem.getAttribute("classid") !== match);
+ }
+ }
+
+ return true;
}
});