web-dev-qa-db-ja.com

SafariでのHTMLカラー入力変更イベントが頻繁に発生する

MacOSのSafariでブラウザのネイティブ HTML colorinput を使用しようとしています。ユーザーがカラーピッカーの次のビューから色を選択しようとすると、 change event が頻繁に発生するという問題があります。

MacOS Safari color picker

色が必要なのは、ユーザーが選択を終えたとき、またはそれぞれカラーピッカーを閉じたときだけです。

Mozillaのドキュメントによると:

changeイベントは、ユーザーがカラーピッカーを閉じると発生します。

ユーザーがピッカーを閉じたときにのみ発生します。

これはMacOSのSafariのバグですか?

最後に選択した色を取得するにはどうすればよいですか?

4
BuZZ-dEE

ブラウザ間のイベントの違いは、よくある問題です。私の提案は以下の通りです:

oninput属性を試して、入力が最終的に確認されたときに関数をトリガーします。

例えば.

<input type="color" value="#ff0000" id="bgcolor" name="bgcolor" oninput="changeBackground(bgcolor.value)">

トリガーされた関数は次のようになります。

function changeBackground(colorValue){
    document.body.style.backgroundColor = colorValue;
}

背景色でない場合は、変更したいスタイルに変更してください。

0
Cody