Make sure that expando properties aren't set on embed, applet, or object elements...
[jquery.git] / src / data.js
index 1d993fe..44d77a9 100644 (file)
@@ -6,7 +6,19 @@ jQuery.extend({
        
        expando:expando,
 
+       // The following elements throw uncatchable exceptions if you
+       // attempt to add expando properties to them.
+       noData: {
+               "embed": true,
+               "object": true,
+               "applet": true
+       },
+
        data: function( elem, name, data ) {
+               if ( jQuery.noData[elem.nodeNode.toLowerCase()] ) {
+                       return;
+               }
+
                elem = elem == window ?
                        windowData :
                        elem;
@@ -43,6 +55,10 @@ jQuery.extend({
        },
 
        removeData: function( elem, name ) {
+               if ( jQuery.noData[elem.nodeNode.toLowerCase()] ) {
+                       return;
+               }
+
                elem = elem == window ?
                        windowData :
                        elem;