引用符を使用する必要があります:
document.body.style.backgroundColor = 'rgb(' + a + ',' + b + ',' + c + ')';
JSフィドルデモ。
または:
document.body.style.backgroundColor = 'rgb(' + [a,b,c].join(',') + ')';
JSフィドルデモ。
引用符で囲まれていないJavaScriptは、変数を引数としてa
、b
およびとc
呼ばれる未定義の関数に渡しますrgb()
。CSSプロパティを設定するときは、文字列を渡す必要があるため、引用符で囲む必要があります。
ああ、また、基数を渡す必要parseInt()
のないものを使用していますが、渡す方が良いです(そして問題を回避するのが簡単です)(基数は予想される数ベースです):
var a = parseInt(prompt("Enter R"), 10) || 255,
b = parseInt(prompt("Enter G"), 10) || 255,
c = parseInt(prompt("Enter B"), 10) || 255;
JS Fiddleデモ(このデモでは、ボタンが使用さ105
れている場合にデフォルトが使用されていることを明確にするために使用しています)。cancel
cancelそして、誰かがプロンプトで「キャンセル」を押した場合、実際の色の値が確実に渡されるようにデフォルトの引数を指定することをfalse
お勧めします。255
好みに合わせて調整してください)。
もちろん、関数を定義することもできます。
function rgb(r,g,b) {
return 'rgb(' + [(r||0),(g||0),(b||0)].join(',') + ')';
}
var a = parseInt(prompt("Enter R"), 10),
b = parseInt(prompt("Enter G"), 10),
c = parseInt(prompt("Enter B"), 10);
document.body.style.backgroundColor = rgb(a,b,c);
JSフィドルデモ
そして、このアプローチには、カスタムのデフォルト値を使用できるという(おそらく疑わしい)利点があります。
function rgb(r,g,b, def) {
def = parseInt(def, 10) || 0;
return 'rgb(' + [(r||def),(g||def),(b||def)].join(',') + ')';
}
var a = parseInt(prompt("Enter R"), 10),
b = parseInt(prompt("Enter G"), 10),
c = parseInt(prompt("Enter B"), 10);
document.body.style.backgroundColor = rgb(a,b,c,40);
JSフィドルデモ
参照: