]> source.dussan.org Git - jquery.git/commitdiff
Fix #10299. Add a propHook for oldIE link href.
authorDave Methvin <dave.methvin@gmail.com>
Fri, 2 Nov 2012 00:50:45 +0000 (20:50 -0400)
committerDave Methvin <dave.methvin@gmail.com>
Fri, 2 Nov 2012 00:50:45 +0000 (20:50 -0400)
src/attributes.js
test/unit/attributes.js

index 52098ae34fddd0fe8cf62625b054b4932e76cded..dbaf3d5eb8d4370fef3778354101f474878aaf58 100644 (file)
@@ -562,6 +562,7 @@ if ( !getSetAttribute ) {
 
 
 // Some attributes require a special call on IE
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
 if ( !jQuery.support.hrefNormalized ) {
        jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
                jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
@@ -571,6 +572,13 @@ if ( !jQuery.support.hrefNormalized ) {
                        }
                });
        });
+
+       // link's href property should get the full normalized URL (#10299)
+       jQuery.propHooks.href = {
+               get: function( elem, name ) {
+                       return elem.getAttribute( name, 4 );
+               }
+       };
 }
 
 if ( !jQuery.support.style ) {
index f171e896e6127076ebfd74780bf7c98c664ea5be..e2648a0e60d125acb7c1e90e070d913aef01dc2c 100644 (file)
@@ -54,7 +54,7 @@ test( "jQuery.propFix integrity test", function() {
 });
 
 test( "attr(String)", function() {
-       expect( 46 );
+       expect( 47 );
 
        equal( jQuery("#text1").attr("type"), "text", "Check for type attribute" );
        equal( jQuery("#radio1").attr("type"), "radio", "Check for type attribute" );
@@ -92,6 +92,8 @@ test( "attr(String)", function() {
                "href": "#5"
        }).appendTo("#qunit-fixture");
        equal( jQuery("#tAnchor5").attr("href"), "#5", "Check for non-absolute href (an anchor)" );
+       jQuery("<a id='tAnchor6' href='#5' />").appendTo("#qunit-fixture");
+       equal( jQuery("#tAnchor5").prop("href"), jQuery("#tAnchor6").prop("href"), "Check for absolute href prop on an anchor" );
 
        // list attribute is readonly by default in browsers that support it
        jQuery("#list-test").attr( "list", "datalist" );