Есть ли способ вызвать функцию Javascript с помощью мыши в HTML?
У меня есть следующий код:
<script src="navSound.js" type="text/javascript"></script>
<a href="#" onmouseover="bubble2.playclip()"><li class="navBackground"><div class="navButton">Gallery</div></li></a>
Я хотел бы, чтобы он вызывал функцию с именем "playclip()", которая находится во внешнем файле, связанном с HTML-документом с именем navSound.js
Есть идеи?
Да, можно так:
<html>
<head>
<script type='text/javascript'>
function playclip() {
alert('playing clip...');
}
</script>
</head>
<body>
<a href="#" onmouseover="playclip()"><li class="navBackground"><div class="navButton">Gallery</div></li></a>
</body>
</html>
В вашем случае функция playclip() будет находиться во внешнем файле "navSound.js", включенном в тег скрипта, используя атрибут "src".
ОБНОВИТЬ:
Я обновил ваш Fiddle, и вы можете увидеть изменения, которые здесь хорошо работают:
http://jsfiddle.net/Lb966/ (будьте осторожны: вы услышите лошадь neigggggghhhhhh;)
Я также вставляю разметку + код ниже:
<html>
<head>
<script type='text/javascript'>
window.onload = function() {
var html5_audiotypes={ //define list of audio file extensions and their associated audio types. Add to it if your specified audio file isn't on this list:
"mp3": "audio/mpeg",
"mp4": "audio/mp4",
"ogg": "audio/ogg",
"wav": "audio/wav"
}
function createsoundbite(sound){
var html5audio=document.createElement('audio');
if (html5audio.canPlayType){ //check support for HTML5 audio
for (var i=0; i<arguments.length; i++){
var sourceel=document.createElement('source')
sourceel.setAttribute('src', arguments[i])
if (arguments[i].match(/\.(\w+)$/i))
sourceel.setAttribute('type', html5_audiotypes[RegExp.$1])
html5audio.appendChild(sourceel)
}
html5audio.load()
html5audio.playclip=function(){
//html5audio.pause()
html5audio.currentTime=0
html5audio.play()
}
return html5audio
}
else{
return {playclip:function(){throw new Error("Your browser doesn't support HTML5 audio unfortunately")}}
}
}
var audio = createsoundbite("http://www.w3schools.com/html/horse.ogg");
audio.setAttribute('id', 'myAudio');
document.getElementById('content').appendChild(audio);
}
</script>
</head>
<body>
<div id='content'></div>
<a href="#" onmouseover="document.getElementById('myAudio').play()">Gallery</a>
</body>
</html>
F12
в любом браузере.