Les Allergies
Alimentaires
Posez votre question Signaler

Javascript : fichier ou code dans le Head? [Résolu]

pijaku 4444Messages postés 15 mai 2008Date d'inscription 24 avril 2012Dernière intervention - Dernière réponse le 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.
Lire la suite 

Javascript : fichier ou code dans le Head »

13 réponses
Réponse
+0
moins plus
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 :)
pijaku- 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
bg62- 25 févr. 2011 à 11:52
là tu auras la réponse "sans failles" !!!
@+
Ajouter un commentaire
Réponse
+0
moins plus
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. ?
pijaku- 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.
bg62- 26 févr. 2011 à 11:13
il n'y a pas une fonction "onclick" ..... ???
pijaku- 26 févr. 2011 à 11:29
Peut être, surement oui. Mais ici, dans le code de RAD, il n'y a pas onclick, juste onmouseover (et c'est bien ce que je demande aujourdhui). Cependant, google chrome semble ne pas se comporter normalement...
Rien de grave, rien d'urgent pour l'instant...
Merci
Ajouter un commentaire
Réponse
+0
moins plus
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+
pijaku- 26 févr. 2011 à 16:38
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+
Ajouter un commentaire
Ce document intitulé « Javascript : fichier ou code dans le Head? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?