MacOSのSafariでブラウザのネイティブ HTML color
input
を使用しようとしています。ユーザーがカラーピッカーの次のビューから色を選択しようとすると、 change
event が頻繁に発生するという問題があります。
色が必要なのは、ユーザーが選択を終えたとき、またはそれぞれカラーピッカーを閉じたときだけです。
Mozillaのドキュメントによると:
change
イベントは、ユーザーがカラーピッカーを閉じると発生します。
ユーザーがピッカーを閉じたときにのみ発生します。
これはMacOSのSafariのバグですか?
最後に選択した色を取得するにはどうすればよいですか?
ブラウザ間のイベントの違いは、よくある問題です。私の提案は以下の通りです:
oninput
属性を試して、入力が最終的に確認されたときに関数をトリガーします。
例えば.
<input type="color" value="#ff0000" id="bgcolor" name="bgcolor" oninput="changeBackground(bgcolor.value)">
トリガーされた関数は次のようになります。
function changeBackground(colorValue){
document.body.style.backgroundColor = colorValue;
}
背景色でない場合は、変更したいスタイルに変更してください。