focus イベントハンドラ
window.onfocus
はいかがでしょうか。
(addEventListener
を使うと上書きされる心配がなくなります。)
https://developer.mozilla.org/ja/docs/Web/Events/focus
※音を鳴らす動作は敬遠される場合があるのでユーザが音のOn/Offを設定出来ると良いと思います。
audio要素の API サポート状況
iPhone で動作しないとのことですが、onfocus
を確認する前にaudio要素のAPIサポート状況を確認する必要があると思います。
HTMLMediaElement#play
が存在するのか。
JavaScript
1alert('play' in document.getElementById("play-sound"));
iOS Safari で再生可能な音楽フォーマットを使っているのか。
Page Visibility API
iOS Safari では window.onfocus
が動作しないようなので Page Visibility API を併用します。
javascript
1'use strict';
2function handleVisibilitychange (event) {
3 var doc = event.target;
4
5 if (doc.visibilityState === 'visible') {
6 alert(event.target.visibilityState);
7 doc.getElementById('play-sound').play();
8 }
9}
10
11function handleFocus (event) {
12 alert(event.type);
13 event.currentTarget.document.getElementById('play-sound').play();
14}
15
16if ('visibilityState' in document) {
17 document.addEventListener('visibilitychange', handleVisibilitychange, false);
18} else if ('onfocus' in this) {
19 addEventListener('focus', handleFocus, false);
20}
Re: kouji20 さん
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/08 18:26
2016/05/09 02:15
2016/05/11 16:53
2016/05/12 22:09