jQuery: HEX RVB de calcul entre les différents navigateurs?

Le morceau de code suivant fonctionne parfaitement dans tous les navigateurs, bar IE. Comme à l'habitude.
C'est ce qui doit arriver:

  1. Lors du survol d'un lien, d'obtenir que
    la couleur du lien.
  2. Obtenir la valeur RVB de la couleur,
    vu que la base de CSS sera toujours
    être réglé à une valeur HEXADÉCIMALE;
  3. Utiliser la nouvelle valeur RVB et faire des calculs afin de déterminer une teinte plus claire que la couleur
  4. Animer cette nouvelle teinte plus claire, sur une période de 0,5 sec.
  5. Lors du déplacement de la souris loin, restauration
    la couleur à la valeur d'origine

Comme je l'ai dit, jusqu'à présent, le code fonctionne très bien, sauf dans IE. Quelqu'un peut-il avec un regard neuf (intacte et une racine des cheveux) de prendre un coup d'oeil à cela? Peut-il être fait de différent?

function getRGB(color) {
//Function used to determine the RGB colour value that was passed as HEX
var result;
//Look for rgb(num,num,num)
if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];
//Look for rgb(num%,num%,num%)
if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) return [parseFloat(result[1]) * 2.55, parseFloat(result[2]) * 2.55, parseFloat(result[3]) * 2.55];
//Look for #a0b1c2
if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];
//Look for #fff
if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) return [parseInt(result[1] + result[1], 16), parseInt(result[2] + result[2], 16), parseInt(result[3] + result[3], 16)];
}
var $oldColour;
//Get all the links I want to target
$('a').not('aside.meta a.notes_link, aside.meta ul li a, section.social_media a, footer a').hover(function() {
//code when hover over
//set the old colour as a variable so we can animate to that value when hovering away
$oldColour = $(this).css('color');
//run the getRGB function to get RGB value of the link we're hovering over
var rgb = getRGB($(this).css('color'));
for (var i = 0; i < rgb.length; i++)
//for each of the 3 HEX values, determine if the value + an increment of 30 (for a lighter colour) is lighter than the max (255)
//if it is, use the HEX value plus the increment, else use the max value
rgb[i] = Math.min(rgb[i] + 30, 255);
//join the new three new hex pairs together to form a sinle RGB statement
var newColor = 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')';
//animate the text link color to the new color.
$(this).animate({'color': newColor}, 500);
}, function() {
//code when hovering away
//animate the colour back using the old colour determined above
$(this).animate({'color': $oldColour}, 500);
});

J'ai hâte de vous entendre Gourou.