純粋な JavaScript と HTML を使用してカラー ピッカーを作成しています。これは、3 つの HTML 選択 (ドロップダウン ボックス) と、JavaScript によって背景色が変更される 1 つの div で構成されます。また、これを可能な限り「正しく」実行しようとしています。これは、HTML に Javascript コードがないことを意味します。
これまでの私のコードは次のようになります。
var red = document.getElementById('red');
red.onchange = update();
var green = document.getElementById('green');
green.onchange = update();
var blue = document.getElementById('blue');
blue.onchange = update();
var thebox = document.getElementById('colourbox');
function d2h(d) {return d.toString(16);}
function h2d(h) {return parseInt(h,16);}
function update(){
finalcolor = '#' + d2h(red.value) + d2h(green.value) + d2h(blue.value)
thebox.style.background = finalcolour;
}
HTML は次のようになります。
<div id="colourbox"></div>
<form name="myform" action="colour.html">
<select name="red" id="red">
<option value="0">0</option>
.... etc etc ....
</select>
<select name="green" id="red">
<option value="0">0</option>
.... etc etc ....
</select>
<select name="blue" id="red">
<option value="0">0</option>
.... etc etc ....
</select>
</form>
問題は、すべての document.getElementById() 呼び出しが null を返すことです。おそらく、コードが実行された時点では存在しないためです。コードを window.onload = function() {} 内に配置しようとしましたが、a) 混乱するだけで、b) 関数内で update 関数を定義する必要がありますが、これは正しくないようです。
誰でもこれに光を当てることができますか?それがどのように機能するかを理解するのに役立つ一般的なルールはありますか? または、主題に関するいくつかの文書ですか?
編集: 改訂されたコード:
<script type="text/javascript">
window.onload = function(){
var red = document.getElementById('red');
red.onchange = update();
var green = document.getElementById('green');
green.onchange = update();
var blue = document.getElementById('blue');
blue.onchange = update();
var thebox = document.getElementById('colourbox');
function d2h(d) {return d.toString(16);}
function h2d(h) {return parseInt(h,16);}
function update(){
var finalcolor = '#' + d2h(document.getElementById('red').value) + d2h(document.getElementById('green').value) + d2h(document.getElementById('blue').value);
document.getElementById('colourbox').style.background = finalcolor;
}
}
</script>