From 2ca36598954759c5b5dce569a39c52b981ed4ab2 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Sat, 9 Oct 2010 10:42:01 -0400 Subject: [PATCH] Prevent IE from throwing errors when setting RGBA values. Fixes #5509. --- src/css.js | 6 +++++- test/unit/css.js | 12 +++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/css.js b/src/css.js index 4bf818e..99cb735 100644 --- a/src/css.js +++ b/src/css.js @@ -88,7 +88,11 @@ jQuery.extend({ // If a hook was provided, use that value, otherwise just set the specified value if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) { - style[ name ] = value; + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} } } else { diff --git a/test/unit/css.js b/test/unit/css.js index 468f763..26dd704 100644 --- a/test/unit/css.js +++ b/test/unit/css.js @@ -64,7 +64,7 @@ test("css(String|Hash)", function() { }); test("css(String, Object)", function() { - expect(21); + expect(22); ok( jQuery('#nothiddendiv').is(':visible'), 'Modifying CSS display: Assert element is visible'); jQuery('#nothiddendiv').css("display", 'none'); @@ -104,6 +104,16 @@ test("css(String, Object)", function() { equals( ret, div, "Make sure setting undefined returns the original set." ); equals( div.css("display"), display, "Make sure that the display wasn't changed." ); + + // Test for Bug #5509 + var success = true; + try { + jQuery('#foo').css("backgroundColor", "rgba(0, 0, 0, 0.1)"); + } + catch (e) { + success = false; + } + ok( success, "Setting RGBA values does not throw Error" ); }); if(jQuery.browser.msie) { -- 1.7.10.4