11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à toutes et à tous,

je rencontre deux conflits du à javascript.

Voici mon intégration html et ensuite je vous mettrai les js

HTML

<script src="js/jquery.tools.min.js" type="text/javascript"></script>
<script src="js/overlay.js" type="text/javascript"></script>
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/cufon-replace.js"></script>  
<script type="text/javascript" src="js/Lobster_11_400.font.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript" src="js/html5.js"></script>

</head>

<body>
<h1>recette,minceur,perdre du poids,saison,menu,diabete,maigrir</h1>
<div class="think"><a href="#"><img src="images/pensez-y.png"></a></div>
<div class="why"><a href="#"><img src="images/membre.png"></a></div>
<div id="container">
	<ul class="menu-top">
	<div class="bonjour">bblabla</div>

		<li class="idwelcome">
	  </li>
		<li><a href="login.html" rel="#overlay" style="text-decoration:none">Se connecter</a></li>
		<li class="last-item"><a href="subscribe.html" rel="#overlay" style="text-decoration:none">Devenir membres</a></li>
	</ul>

	<div class="logo"><a href="http://www.nos-recettes-minceur.com/" id="logo">Nos Recettes minceur </a></div>
	<nav>
		<ul id="menu">
			<li><a href="http://www.nos-recettes-minceur.com/"><b>Accueil</b><span>recettes minceur</span></a></li>
			<li><a href="http://www.nos-recettes-minceur.com/recettes-minceur-de-chefs.php"><b>Recettes</b><span>minceur de nos chefs</span></a></li>
			<li><a href="http://www.nos-recettes-minceur.com/menus-equilibres-minceur.php"><b>Menus</b><span>&#233;quilibr&#233;s du moment</span></a></li>
			<li><a href="http://www.nos-recettes-minceur.com/ustensiles-cuisine.php"><b>Ustensiles de cuisine</b><span>les indispensables</span></a></li>
			<li><a href="http://www.nos-recettes-minceur.com/cote-librairie-minceur.php"><b>C&#244;t&#233; librairie</b><span>notre s&#233;lection</span></a></li>
		</ul>
	</nav>
</div>
<!-- overlayed element --> 
<div class="apple_overlay" id="overlay"> 
 
	<!-- the external content is loaded inside this tag --> 
	<div class="contentWrap"></div> 
 
</div> 


MAINTENANT les deux JS
[#blue]/*overlay.js*/
[/#]
$(function() {

	// if the function argument is given to overlay,
	// it is assumed to be the onBeforeLoad event listener
	$("a[rel]").overlay({

		mask: '#b8d53d',
		effect: 'apple',

		onBeforeLoad: function() {

			// grab wrapper element inside content
			var wrap = this.getOverlay().find(".contentWrap");

			// load the page specified in the trigger
			wrap.load(this.getTrigger().attr("href"));
		}

	});
});

[#indigo]/* formToWizard.js */[/#]
/* Created by jankoatwarpspeed.com */

(function($) {
    $.fn.formToWizard = function(options) {
        options = $.extend({  
            submitButton: "" 
        }, options); 
        
        var element = this;

        var steps = $(element).find("fieldset");
        var count = steps.size();
        var submmitButtonName = "#" + options.submitButton;
        $(submmitButtonName).hide();

        // 2
        $(element).before("<ul id='steps'></ul>");

        steps.each(function(i) {
            $(this).wrap("<div id='step" + i + "'></div>");
            $(this).append("<p id='step" + i + "commands'></p>");

            // 2
            var name = $(this).find("legend").html();
            $("#steps").append("<li id='stepDesc" + i + "'>Etape " + (i + 1) + "<span>" + name + "</span></li>");

            if (i == 0) {
                createNextButton(i);
                selectStep(i);
            }
            else if (i == count - 1) {
                $("#step" + i).hide();
                createPrevButton(i);
            }
            else {
                $("#step" + i).hide();
                createPrevButton(i);
                createNextButton(i);
            }
        });

        function createPrevButton(i) {
            var stepName = "step" + i;
            $("#" + stepName + "commands").append("<a href='#' id='" + stepName + "Prev' class='prev'>< Retour</a>");

            $("#" + stepName + "Prev").bind("click", function(e) {
                $("#" + stepName).hide();
                $("#step" + (i - 1)).show();
                $(submmitButtonName).hide();
                selectStep(i - 1);
            });
        }

        function createNextButton(i) {
            var stepName = "step" + i;
            $("#" + stepName + "commands").append("<a href='#' id='" + stepName + "Next' class='next'>Suivant ></a>");

            $("#" + stepName + "Next").bind("click", function(e) {
                $("#" + stepName).hide();
                $("#step" + (i + 1)).show();
                if (i + 2 == count)
                    $(submmitButtonName).show();
                selectStep(i + 1);
            });
        }

        function selectStep(i) {
            $("#steps li").removeClass("current");
            $("#stepDesc" + i).addClass("current");
        }

    }
})(jQuery); 



DANS ma page appelé contenu:

<head>
<link href="stylesheets/style.css" media="screen, projection" rel="stylesheet" type="text/css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="js/formToWizard.js"></script>
<script type="text/javascript">
        $(document).ready(function(){
            $("#SignupForm").formToWizard({ submitButton: 'SaveAccount' })
        });
</script>
</head>
<body>
<img src="images/subscribe.png">
<form id="SignupForm" name="SignupForm" action="logmember.php" method="post">
<fieldset>
    <legend>Vos informations</legend>
		<p><label for="identifiant">* Identifiant</label>
                                <input id="identifiant" name="identifiant" /></p>
        <p><label for="email">* Email</label>
                                <input id="email" name="email" placeholder="info@nos-recettes-minceur.com" type="email" AUTOCOMPLETE=OFF /></p>
        <p><label for="password">* Mot de passe</label>
                                <input id="password" name="password" type="password" AUTOCOMPLETE=OFF /></p>
        <p><label for="newsletter">Cocher la case si vous souhaitez recevoir la newsletter</label>
								<input id="newsletter" name="newsletter" type="checkbox" /></p>
</fieldset>
<fieldset>
    <legend>Mon abonnement</legend>
		<p><label for="12mois"><strong>Acces 12 mois = 4&#128; / mois</strong></br>Factur&#233; en un paiement de 48 euros</label>
                                <input id="douzemois" name="douzemois" type="checkbox" /></p>
        <p><label for="6mois"><strong>Acces 6 mois = 5,5&#128; / mois</strong></br>Factur&#233; en un paiement de 33 euros</label>
                                <input id="sixmois" name="sixmois" type="checkbox" /></p>
        <p><label for="1mois"><strong>Acces 1 mois = 7&#128; / mois</strong></br>Factur&#233; en un paiement de 7 euros</label>
                                 <input id="unmois" name="unmois" type="checkbox" /></p>
</fieldset>
<fieldset>
    <legend>Choix de paiement</legend>
		<p><label for="cardtype">Type de carte</label>
                                <select id="cardtype" name="cardtype">
                                    <option>Visa</option>
                                    <option>Mastercard</option>
                                </select></p>
        <p><label for="cardnumber">Num&#233;ro de carte</label>
                                <input id="cardnumber" name="cardnumber" type="number" AUTOCOMPLETE=OFF /></p>
        <p><label for="secure">Code de s&#233;curit&#233; (cryptograme)</label>
                                <input id="secure" name="secure" type="number" AUTOCOMPLETE=OFF /></p>
        <p><label for="namecard">Nom du propri&#233;taire de la carte</label>
                                <input id="namecard" name="namecard" type="text" AUTOCOMPLETE=OFF /></p>
</fieldset>
<fieldset>
	<legend>Confirmer votre inscription</legend>
		<p>En validant toutes ses informations, <a href="#">j&#39;accepte les conditions d&#39;utilisations</a></p>
		<p><button id="SaveAccount" type="submit"><span>S&#39;ENREGISTRER</span></button></p>
</fieldset>
</form>

Si quelqu'un peux trouver la solution à mon problème en sachant que j'ai déjà lu plusieurs sujet du même genre sur des blogs mais il n'y avait pas toujours les réponses QUE JE COMPRENAIS !!!

MERCI à celle ou celui qui y arrivera Smiley smile et vive Gael Goetter ^^
Modifié par Geoffrey C. (22 Sep 2011 - 10:35)
Salut,

En fouillant la documentation de jQuery, tu aurais trouvé quelque chose d'intéressant : la fonction noConflict () de jQuery, à utiliser comme suit, par exemple :
// On utilise ici $j au lieu du simple $ pour éviter tout conflit avec une autre bibliothèque recourant aimant les $
$j = jQuery.noConflict ();
$j(function ()
{
  // Du code
});

Essaie.

Soit dit en passant, si tu utilises JavaScript et Cufón pour l'utilisation de polices exotiques, sache que tu peux très avantageusement les remplacer par la règle @font-face de CSS 3, comprise par tous les navigateurs, y compris IE (IE 6 inclus). Smiley cligne
Modifié par Victor BRITO (21 Sep 2011 - 16:59)
Hello.

Je ne crois pas que le noConflict fonctionne dans le cas présent, je n'ai pas l'impression qu'il y a appel à une autre lib que jQuery.

Ça serait pas mal que tu mettes ton code en forme proprement ou que tu nous passes le lien d'une page en ligne, là c'est juste impossible de s'y retrouver dans cet Armageddon.

PS: les techniques pour éviter qu'on pompe les images sur ton site, il faut oublier.

dafid5 a écrit :
...et vive Gael Goetter ^^
C'est qui? Smiley rolleyes
Modifié par Florian_R (21 Sep 2011 - 18:10)
Florian_R a écrit :
Hello.
Ça serait pas mal que tu mettes ton code en forme proprement ou que tu nous passes le lien d'une page en ligne, là c'est juste impossible de s'y retrouver dans cet Armageddon.

C'est clair, c'est illisible… Et il y a un nombre important de script js appelés dans tous les sens. Sans compter qu'une autre page est appelée dynamiquement…

Donc une démo en ligne sur ce coup-là c'est impératif, et aussi le code posté dans des balises code, ce sera déjà pas mal…
Bonjour, merci déjà pour toutes les réponses, j'avais déjà consulter des forums jquery en ce qui concerne le no conflit, mais je dois avouer ne pas avoir essayé sachant que je ne connais pas le javascript, je ne fais qu'utiliser les script que je trouve.

Effectivement c'est brouillon ce que je vous ai envoyé,

voici ma page d'exemple

http://www.dieteticien-nutritionniste-sante.com/essai/

Il s'agit du lien "devenir membre", l'ouverture sous chrome se fait correctement mais sous opéra et firefox le js que j'ai mis ne fonctionne pas

Merci pour votre aide

PS: Gael Goetter, c'est un des web designer d'alsacréations qui fait des super topics Smiley smile (en tout cas pour moi!!)
Administrateur
dafid5 a écrit :
...et vive Gael Goetter ^^

Florian_R a écrit :
C'est qui? Smiley rolleyes

dafid5 a écrit :
PS: Gael Goetter, c'est un des web designer d'alsacréations qui fait des super topics Smiley smile (en tout cas pour moi!!)
Les initiales GG, ça vient de là ? Smiley lol
- EH GAËL !
- QUOI ?
- EH GAËL !
- QUOI ?
- EH GAËL !
- QUOI ?
- EH GAËL !
- QUOI ?
- EH GAËL !
- QUOI ?
Modifié par Felipe (22 Sep 2011 - 09:49)
Oui c'est normal le script.js ne servait a rien je n'ai tout simplement pas enlever du code html
Bon déjà, il va falloir régler les problèmes html avant d'attaquer le js… Ta page s'affiche mal sur Firefox (principalement la partie en flash).

Tu déclares un doctype xhtml 1.0 strict, alors que tu utilises une balise html 5 (header). Tu spécifies deux fois l'encodage de la page (charset=UTF-8) dans deux balises meta différentes.
Et concernant cette balise <header>, tu ne l'utilises pas correctement. Elle est utilisée pour encadrer l'entête d'un site, et contient dans la majorité des cas au moins un <h1>. Sur ton site, elle devrait remplacer le div #container mais sans la <nav>.

Et sinon, il faut déclarer ton document de la sorte :

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Titre de la page</title>
</head>
<body>
</body>
</html>

À savoir que pour conserver la compatibilité avec les navigateurs qui ne comprennent pas l'HTML5, il te faudra passer via modernizr ou toute autre solution similaire.

Une fois la déclaration de ton document et les bugs d'affichage corrigés, reviens vers nous pour qu'on puisse t'aider à résoudre ton problème js Smiley smile
Modifié par ZeB_panam (22 Sep 2011 - 22:48)
merci zeb panam, je vais déjà corriger ça Smiley smile , je n'y avais jamais porté attention auparavant !! Smiley cligne
Je reviens vers vous après avoir suivi vos conseils !!

tout d'abord voici le lien de démo : http://www.nos-recettes-minceur.com/essai/

Je rencontre toujours un souci avec un js, quand je clique sur le lien "devenir membres" j'utilise le js "overlay" ce qui permet d'obtenir l'ouverture d'une fenêtre. Cette nouvelle fenêtre s'affiche comme je le souhaites sous chrome, sous firefox, MAIS par contre sous opéra le script ne fonctionne pas, ma fenêtre s'ouvre bien, mais son contenu (normalement utilisant le script forToWizard.js ne rend pas du tout !!!)

Auriez-vous une idée ?
Effectivement sous Opéra la modalbox s'ouvre, mais le contenu sort de cette dernière.

Sinon toujours impossible de passer la validation html de ton document ( http://validator.w3.org/ ). Tu spécifies un encodage utf-8, mais tu as mis des caractères non-valides dans ta page. Il n'y a aucun intérêt à encoder tes caractères (du genre "&#233" au lieu de "é") vu que l'utf-8 comprend les caractères spéciaux.

Ah oui, et pourquoi utilises-tu des frames ? C'est une très mauvaise idée du point de vue du référencement. Si c'est pour effectuer une redirection, utilises plutôt des headers php.
Bonjour,

j'ai été sur le site http://validator.w3.org/ pour voir mes erreurs et effectivement ils m'ont mis une frame, or je n'en n'ai pas mis dans mes pages !!!, actuellement j’héberge ma page de démo sur le domaine de mon autre site et c'est ovh qui me redirige !

Je corrige mes accents !!!

une idée concernant le contenu qui sort de la modalbox ?

Merci encore Zeb panam!!!
dafid5 a écrit :
actuellement j’héberge ma page de démo sur le domaine de mon autre site et c'est ovh qui me redirige !

Essaye de voir comment régler ce problème de redirection immonde à base de frameset. Ensuite valide ton code HTML.
De là on verra si le plug-in overlay.js déconne toujours. C'est peut-être aussi son utilisation imbriquée avec formToWizard qui fait que ça ne fonctionne pas comme tu voudrais.