Get actual values for attributes in IE and fix #910 so that it does not crash safari

This commit is contained in:
Brandon Aaron 2007-02-09 19:52:31 +00:00
parent 46806957f4
commit 81f138d77e

View file

@ -1470,7 +1470,7 @@ jQuery.extend({
if ( arg.length === 0 ) if ( arg.length === 0 )
return; return;
if ( arg[0] == undefined || jQuery.nodeName(arg[0],"form") ) if ( arg[0] == undefined || (jQuery.browser.msie && jQuery.nodeName(arg,"form")) )
r.push( arg ); r.push( arg );
else else
r = jQuery.merge( r, arg ); r = jQuery.merge( r, arg );
@ -1495,6 +1495,8 @@ jQuery.extend({
selected: "selected" selected: "selected"
}; };
var fixIE = jQuery.isXMLDoc(elem) ? [] : "href,src,background,cite,classid,codebase,data,longdesc,profile,usemap".split(',');
// IE actually uses filters for opacity ... elem is actually elem.style // IE actually uses filters for opacity ... elem is actually elem.style
if ( name == "opacity" && jQuery.browser.msie && value != undefined ) { if ( name == "opacity" && jQuery.browser.msie && value != undefined ) {
// IE has trouble with opacity if it does not have layout // IE has trouble with opacity if it does not have layout
@ -1525,7 +1527,7 @@ jQuery.extend({
// IE elem.getAttribute passes even for style // IE elem.getAttribute passes even for style
else if ( elem.tagName ) { else if ( elem.tagName ) {
if ( value != undefined ) elem.setAttribute( name, value ); if ( value != undefined ) elem.setAttribute( name, value );
if ( name == "href" && jQuery.browser.msie && !jQuery.isXMLDoc(elem) ) return elem.getAttribute( name, 2 ); if ( jQuery.browser.msie && fixIE[name] ) return elem.getAttribute( name, 2 );
return elem.getAttribute( name ); return elem.getAttribute( name );
// elem is actually elem.style ... set the style // elem is actually elem.style ... set the style