Javascript : fichier ou code dans le Head?

Résolu/Fermé
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 févr. 2011 à 08:30
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 26 févr. 2011 à 16:38
Bonjour,

Je suis en train de remanier en intégralité le site Internet d'une association. J'ai un petit menu vertical tout bien en css. Je souhaite qu'au survol des liens par la souris, un son (très bref) soit émis. Pour cela, je pense utiliser ce code :
HEAD :
<script LANGUAGE="JavaScript">
<!--
var aySound = new Array();
aySound[0] = "mon_son.wav";

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>

BODY :
<A HREF="YourPage.html" onMouseOver="playSound(0)" onMouseOut="stopSound(0)">Votre lien ici !</A>
sources

Je me pose alors plusieurs questions :
1- cette méthode est elle la meilleure?
2- ne devrais je pas sauver ce code (head) dans un fichier "sonsurvol.js" et l'appeler dans mes pages comme ceci : <script type="text/javascript" src="sonsurvol.js"></script>
3- Y a t'il une autre solution (à part flash) pour réaliser ce que je souhaite?
Merci d'avance.
A voir également:

3 réponses

bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
25 févr. 2011 à 11:47
salut :)
la 'meilleure méthode' ... pas évident
mais (et surtout pour éviter flash) sur que ta deuxième proposition est la meilleure ...
mais, autant avoir à faire à un spécialiste :)
contact RAD il va te résoudre ça en un clic ...
bonne chance et à bientôt :)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
25 févr. 2011 à 11:48
Salut bg62!!!
Merci de ta réponse.
Je ne voulais pas abuser des talents de Rad... Mais tu as probablement raison, je vais lui poser la question.
Merci et oui, à très bientôt
0
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
25 févr. 2011 à 11:52
là tu auras la réponse "sans failles" !!!
@+
0
RAD ZONE Messages postés 5224 Date d'inscription samedi 20 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 1 353
Modifié par RAD ZONE le 25/02/2011 à 22:45
salut

Ton code js ne fonctionne que sur IE !!

essaye avec cet exemple il fonctionne partout !
mais tu ne passera pas a la validation W3C , je pense que tu t en fout ;-)) mais je previens .

tu peux bien sur mettre le js et le css en fichier externe !

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
  <head> 
    <title> 
      RAD ZONE Webcreation 
    </title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <meta name="generator" content="PSPad editor, www.pspad.com" /> 
<style type="text/css"> 
/*<![CDATA[*/ 
.player{ 
  width:0px; 
  height:0px 
} 
/*]]>*/ 
</style> 
<script type="text/javascript"> 
//<![CDATA[ 
function Jouer(musiqueobj) { 
  var thismusique=document.getElementById(musiqueobj); 
  thismusique.Play(); 
}; 

function Stop(musiqueobj) { 
  var thismusique=document.getElementById(musiqueobj); 
  thismusique.Stop(); 
} 
//]]> 
</script> 
  </head> 
  <body> 
    <p> 
      <a href="YourPage.html" onmouseover="Jouer('musique1')" onmouseout= 
      "Stop('musique1')">Votre lien ici !</a><embed src="bugsbunny1.wav" autostart="false" id="musique1" 
      class="player" enablejavascript="true" /> 
    </p> 
    <p> 
      <a href="YourPage2.html" onmouseover="Jouer('musique2')" onmouseout= 
      "Stop('musique2')">Votre lien 2 ici !</a><embed src="daffyduck1.wav" autostart="false" id= 
      "musique2" class="player" enablejavascript="true" /> 
    </p> 
  </body> 
</html> 
   


voila ce que ca donne en ligne

A+

? La plus grande erreur que puisse faire un homme est d'avoir peur d'en faire une. ?
0
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
25 févr. 2011 à 19:39
salut RAD :)
pourquoi des "wav" ? ... mp3 plus légers non ?
0
RAD ZONE Messages postés 5224 Date d'inscription samedi 20 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 1 353
Modifié par RAD ZONE le 25/02/2011 à 19:42
Salut bg

mp3 plus légers non

oui bien sur !!! mais j en avais pas sous la main c est tout ;-))
0
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
25 févr. 2011 à 20:37
t'as même pas un mp3 sous la main ? non c'est pas possible ça .... :)))))
0
RAD ZONE Messages postés 5224 Date d'inscription samedi 20 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 1 353
25 févr. 2011 à 22:37
UN PETIT ,
NON ;-) loool
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
26 févr. 2011 à 10:15
Salut RAD ZONE, bg62,
Merci de vous pencher sur mon sujet.
Le code de RAD fonctionne pas mal. Cependant, les liens que je souhaite "souligner" d'un son sont ceux de mon menu. Or, lorsque j'adapte ton code à mon menu vertical, les <li></li> suivants se décalent vers le bas. Ce que je gagne en "dynamisme" sur mon site, je le perds en esthétique...
De plus :
- sous Firefox/3.6.13 il demande l'installation du plug in "quicktime"; pour moi, pas de souci, mais pour les utilisateurs dudit site...
- sous google chrome/9.0.597.98, le javascript ne réagit pas au survol, mais au clic... Quel imbécile ce google chrome...

Je vais donc continuer à chercher.
Merci à vous deux.
0
RAD ZONE Messages postés 5224 Date d'inscription samedi 20 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 1 353
26 févr. 2011 à 13:21
salut

les liens que je souhaite "souligner" d'un son sont ceux de mon menu. Or, lorsque j'adapte ton code à mon menu vertical, les <li></li> suivants se décalent vers le bas.

la cela doit venir d une erreur de ta part !

sous Firefox/3.6.13 il demande l'installation du plug in "quicktime

oui mais c est normal !puisque tu ne veux pas utiliser un petit player flash , il faut bien que un lecteur lise le fichier ;-))

google chrome semble ne pas se comporter normalement...

effectivement je n avais pas controle avec chrome !

la meilleur solution ,quoi quand disent les anti flash , est un player swf !

je te met une solution avec flash et js ! je n ai pas le temps de le faire , mais toute la doc est avec ( en anglais) , il faudras que tu l adapte a tes besoins !

telecharge SoundManager2

A+
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 26/02/2011 à 16:42
Salut,
Je ne suis pas anti flash, je suis novice dans ce domaine de programmation.

Pour mon premier problème avec ton code, je l'ai résolu par un peu de css... J'ai remplacé ton :
.player{  
  width:0px;  
  height:0px ; 
}

par :
.player{  
  width:0px;  
  height:0px; 
  display:none;  
}
Et donc plus de souci de "descente" des li du menu...

sous Firefox/3.6.13 il demande l'installation du plug in "quicktime
oui mais c est normal !puisque tu ne veux pas utiliser un petit player flash , il faut bien que un lecteur lise le fichier ;-))

Là tu es en train de sous entendre que l'on pourrait utiliser un lecteur flash qui lirai mon son au survol des liens et qui serai invisible? Je suis preneur!!! Je pense que c'est ce que tu as mis en lien, donc je vais aller voir de suite...

EDIT : Pour ce qui est de chrome, sans polémiquer, tout ce que je veux faire sur mon site d'un peu sympa me pose problème avec ce navigateur... Le son au survol d'un lien, le styleswitcher... Je crois que je vais finir par éviter chrome et le déconseiller à la lecture de mon site...

Merci encore !!!
A+
0