I want a sound to play when an element changes on a page. I know how to do this, but I can't get it to play only on the first change, and don't do it later, until the user focuses the window (tab) and blurs it again.
My current code:
var notif = new Audio('http://cycle1500.com/sounds/infbego.wav');
if (window.innerHeight === window.outerHeight) {
$(window).bind('DOMNodeInserted', function() {
notif.play();
});
}
Use a variable to represent whether the sound should be played or not.
var shouldPlayAlertSound = true,
notif = new Audio('http://cycle1500.com/sounds/infbego.wav');
if (window.innerHeight === window.outerHeight) {
$(window).bind({
'DOMNodeInserted': function() {
if (shouldPlayAlertSound) {
notif.play();
}
shouldPlayAlertSound = false;
}, blur: function() {
shouldPlayAlertSound = true;
}
});
}
Edit: I've tested this working on Firefox, Safari, and Opera (except for the innerHeight check). (Chrome doesn't support playing WAV audio files, only the MP3, AAC, or Ogg Vorbis formats.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With