私のサイトには、RGB カラー セレクターを表示するポップアップ ボックスを開くカレンダーがあります。IE8 以外のすべてのブラウザで正常に動作します。私のコードは以下です。
function rgb2hex(rgb) {
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
function hex(x) {
return ("0" + parseInt(x).toString(16)).slice(-2);
}
return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}
これがエラーです
SCRIPT5007: 未定義または null 参照のプロパティ '1' を取得できません
この行を指すのはどれですか
return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
このコードは、職場で数週間休暇を取った他の誰かによって完成されたものであるため、よく知りません。誰かが私を正しい方向に向けるのを手伝ってくれるなら、それは大歓迎です。
編集
ここで関数が呼び出されます。IE8 で console.log(bgColor) を実行すると #rgb(238, 238, 238) と表示されるため、なぜ機能しないのかわかりません。私が愚かなのかもしれませんが、私の人生ではそれを見ることができません。
$('.period_day').click(function(e) {
var bgColor = $(this).css('background-color');
if (rgb2hex(bgColor) == "#eeeeee") {
$('.colour_picker').css('background-color', '#ff0000');
$('#cal_colour_val').val('#ff0000');
} else {
$('.colour_picker').css('background-color', bgColor);
$('#cal_colour_val').val(bgColor);
}
});