11488 sujets

JavaScript, DOM et API Web HTML5

Bonjour !

Je suis en train de faire un site qui contient une animation d'intro, suivie des autres pages en css dont un catalogue en ligne.
Le client voulant de la musique en continu sur son site, j'ai dû créer un système d'iframe sinon la musique se remet au début à chaque nouvelle page.

Mon site était nickel jusqu'à ce que j'arrive à la partie boutique, qui demande une hauteur plus importante que le reste du site. J'ai testé tous les codes javascript que j'ai pu trouver sur internet dont les auteurs disent que "ça marche", mais pour je ne sais quelle raison, chez moi rien ne marche.

C'est pourquoi j'ai décidé de créer un post sur ce sujet même si je sais que d'autres l'ont fait avant moi, car je me dis que peut-être que la façon dont mon site est fait complique les choses ?...

Voici le code de ma page index.html qui appelle l'iframe sur tout le site :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Le titre du site</title>
<meta name="identifier-url" content="http://www.lurldusite.com">
<meta http-equiv="content-language" content="FR">
<meta name="description" content="Description du site">
<meta name="keywords" content="mots clés du site">
<meta name="copyright" content="www.lurldusite.com">
<meta NAME="ROBOTS" CONTENT="INDEX, FOLLOW, NOYDIR, NOODP, ALL">
<script language="JavaScript" type="text/javascript" src="swfobject.js"></script>
<script language="JavaScript" type="text/javascript" src="prechargement.js"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
<!--[if !IE]> <--><link href="style-noie.css" rel="stylesheet" type="text/css" /><!--> <![endif]-->
</head>

<body onLoad="prechargimg('images-prechargees-du-site')">

<div id="conteneur">
	
<iframe src="index-centre.html" frameBorder="0" scrolling="no" name="indexcentre"  width="950" height="630" align="top" allowtransparency="true">
		<p>Votre browser ne peut pas afficher des pages contenu dans un Iframe...</p>
	</iframe>
	
</div>

<div id="musique">

	<script type="text/javascript">
		// <![CDATA[
	var so = new SWFObject("musique/playercharl.swf", "musique", "140", "22", "7", "" );
   so.addParam("wmode", "");
   so.write("musique");
	
		// ]]>
	</script>
	<br /><br />
</div>

<div id="creationsite">
	<br />Copyright <a href="http://www.urlcreationsite.fr" class="creationsite">url</a> et nom-nom
</div>

</body>
</html>


J'ai laissé la version "avant tests javascripts pour la hauteur", puisqu'aucun des tests n'a été concluants. Donc vous pouvez voir pour l'instant une largeur et une hauteur à ma frame.

Quelqu'un pourrait-il me proposer un code, que je teste afin de vous demander votre aide si cela ne marche pas, pour en comprendre les raisons qui seraient peut-être dues à des problèmes sur mon site ?

Merci d'avance,

Judith
Modifié par judithrou (12 Jun 2008 - 22:14)
judithrou a écrit :
Le client voulant de la musique en continu sur son site

Il faut virer le client. Ou bien le prestataire qui n'a pas su l'en dissuader. Smiley lol

Plus sérieusement, cette demande accessoire (sauf si l'objet du site est la musique qui est ainsi diffusée... pour le site d'un artiste ou d'un label, par exemple, ça peut se justifier) impose pas mal de contraintes techniques. Un point de la FAQ en discute. Parmi les différentes solutions boiteuses à ce problème, tu as choisi les iframes. À priori, ce n'est pas le choix le plus intelligent. Je pense que tu t'en sortirais mieux avec des frames plutôt que des iframes. En tout cas, tu n'aurais pas ce problème de hauteur non adaptable.

On peut aussi tenter une solution Ajax (si possible en surcouche, sinon au revoir le référencement Smiley cligne ). Ça demande une bonne maitrise technique pour faire ça bien.

Mais la meilleure solution technique est d'éviter autant que possible les iframes pour un contenu principal sur une page.
Modifié par Florent V. (12 Jun 2008 - 21:46)
Je ne connais pas du tout l'ajax.

Sinon, je pensais que les frames étaient pires que les iframes, non ??? Il me semblait que c'était quelque chose qu'on ne faisait plus du tout... Et puis par ailleurs je ne savais pas que les frames pouvaient avoir une hauteur ajustable !
judithrou a écrit :
Sinon, je pensais que les frames étaient pires que les iframes, non ???

Non, pas particulièrement. Faire passer tous les contenus du site dans une frame ou dans une iframe, c'est kif-kif (c'est à dire aussi problématique dans un cas comme dans l'autre pour l'accessibilité, le référencement et l'ergonomie). Bien sûr, mieux vaut utiliser une iframe sur quelques pages (ou pour une partie accessoire des pages d'un site) plutôt que de faire un site tout en frames. Mais à partir du moment où ton iframe sert à afficher tous les contenus du site et que le visiteur reste sur la même page «racine» (celle qui a le lecteur de musique), c'est pareil.

judithrou a écrit :
Il me semblait que c'était quelque chose qu'on ne faisait plus du tout...

De même que l'affichage de tous les contenus d'un site via une iframe. Smiley cligne
C'est des pratiques que l'on évite, effectivement.
Ceci dit, les deux sont possibles en HTML 4.01 et XHTML 1.0 (Frameset pour les frames, ou Transitional pour les iframes).

judithrou a écrit :
Et puis par ailleurs je ne savais pas que les frames pouvaient avoir une hauteur ajustable !

Tu peux faire une page «racine» (frameset) avec deux frames: une première frame de 10px de large à gauche, et une deuxième frame sur toute la hauteur et toute la largeur restante. Dans la frame de gauche, tu places ton lecteur de musique avec boutons de contrôle (il est important de pouvoir stopper la musique si besoin). Dans la frame de droite, tout le site.
Tu peux faire la même chose en vertical (frame de X pixels de haut en haut ou en bas). Voire faire une frame «invisible» (zéro pixels de haut)... si je me souviens bien, c'est possible.

Documentation: http://www.la-grange.net/w3c/html4.01/present/frames.html
Merci, c'est effectivement une bonne idée de faire comme ça !!

Eventuellement, je pensais aussi au fait de faire en sorte que la partie du site qui a une taille différente (donc, la boutique) soit dans une page hors frames. Mais avec les iframes il me semblait que cela était impossible.
Avec les frames a priori je n'aurai pas de problème pour faire cela...
Et puis l'idée de mettre le son en haut est une excellente idée, cela permet effectivement que la hauteur varie (mais, encore une fois, cela n'est pas possible je crois avec les iframes donc je ferai cela en frames).

Merci encore ! C'est vrai que j'aurais voulu éviter l'utilisation de ces frames / iframes, mais puisqu'il faut mettre de la musique en continu... Je n'ai pas trop le choix...

Judith