Звук переворота в Firefox - PullRequest
       1

Звук переворота в Firefox

1 голос
/ 18 февраля 2010

Я использую следующий скрипт для наложения звуковых эффектов на кнопки меню на сайте.

<script LANGUAGE="JavaScript"><!--


var aySound = new Array();

aySound[0] = "s.mp3";

document.write('<BGSOUND ID="auIEContainer">')
IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? 1:0;
NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0;
ver4 = IE||NS? 1:0;
onload=auPreload;

function auPreload() {
if (!ver4) return;
if (NS) auEmb = new Layer(0,window);
else {
Str = "<DIV ID='auEmb' STYLE='position:absolute;'></DIV>";
document.body.insertAdjacentHTML("BeforeEnd",Str);
}
var Str = '';
for (i=0;i<aySound.length;i++)
Str += "<EMBED SRC='"+aySound[i]+"' AUTOSTART='FALSE' HIDDEN='TRUE'>"
if (IE) auEmb.innerHTML = Str;
else {
auEmb.document.open();
auEmb.document.write(Str);
auEmb.document.close();
}
auCon = IE? document.all.auIEContainer:auEmb;
auCon.control = auCtrl;
}
function auCtrl(whSound,play) {
if (IE) this.src = play? aySound[whSound]:'';
else eval("this.document.embeds[whSound]." + (play? "play()":"stop()"))
}
function playSound(whSound) { if (window.auCon) auCon.control(whSound,true); }
function stopSound(whSound) { if (window.auCon) auCon.control(whSound,false); }
//-->
</script>

Это отлично работает в IE, но не в Firefox.

Кто-нибудь знает, есть ли способ использовать один и тот же звуковой эффект при наведении мыши в IE и Firefox без использования вспышки?

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 февраля 2010

Кто-нибудь знает, есть ли способ использовать одинаковый onmouseover звуковой эффект в IE и Firefox без использования Flash?

Хорошо, вы можете использовать библиотеку JavaScript, которая нормализует кросс-браузерное onmouseover поведение. Или, если вы действительно не хотите - это должно быть возможно в простом старом JavaScript, с множеством хаков для поддержки всех различных браузеров. Ваш выбор.

Как написано в gist 243946 , вот фрагмент кода jQuery, чтобы сделать именно то, что вы хотите:

var $sound = $('<div id="sound" />').appendTo('body');
$('#special-links-that-play-annoying-sounds-when-hovered a').hover(function() {
 $sound.html('<embed src="foo.mp3" hidden="true" autostart="true" loop="false">');
}, function() {
 // We could empty the innerHTML of $sound here, but that would only slow things down.
});

Конечно, это может быть написано и на обычном старом JavaScript (без jQuery).

0 голосов
/ 18 февраля 2010

* * * * * * * * * * * * * * * * * * * * * * Способ для звука на вашем веб-сайте заключается в использовании вспышки или того, что Facebook использует для входящих мгновенных сообщений, но для этого также требуется Apple Quicktime для воспроизведения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...