Partage
  • Partager sur Facebook
  • Partager sur Twitter

Boutons scrolls

    8 octobre 2009 à 17:46:41

    Bonjour

    J'ai un message d'erreur qui s'affiche en bas à gauche sur IE. Je ne suis pas très très bons en JavaScript. Je n'ai fait que copier ceci, trouvé sur le web :

    Fichier fonction_java.js


    // variables globales
    var isCSS, isW3C, isIE4, isNN4, isIE6CSS;
    // Initialize upon load to let all browsers establish content objects
    function initDHTMLAPI() 
    {
        if (document.images) 
    	{
            isCSS = (document.body && document.body.style) ? true : false;
            isW3C = (isCSS && document.getElementById) ? true : false;
            isIE4 = (isCSS && document.all) ? true : false;
            isNN4 = (document.layers) ? true : false;
            isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
        }
    }
    // Convert object name string or object reference
    // into a valid element object reference
    function getRawObject(obj) 
    {
        var theObj;
        if (typeof obj == "string") 
    	{
            if (isW3C)
    		{
                theObj = document.getElementById(obj);
            } else if (isIE4) {
                theObj = document.all(obj);
            } else if (isNN4) {
                theObj = seekLayer(document, obj);
            }
        } else {
            // pass through object reference
            theObj = obj;
        }
        return theObj;
    } 
    // Convert object name string or object reference
    // into a valid style (or NN4 layer) reference
    function getObject(obj) 
    {
        var theObj = getRawObject(obj);
        if (theObj && isCSS) 
    	{
            theObj = theObj.style;
        }
        return theObj;
    }
    // Move an object by x and/or y pixels
    function shiftBy(obj, deltaX, deltaY) 
    {
        var theObj = getObject(obj);
        if (theObj) 
    	{
            if (isCSS) 
    		{
                // equalize incorrect numeric value type
                var units = (typeof theObj.left == "string") ? "px" : 0 
                theObj.left = getObjectLeft(obj) + deltaX + units;
                theObj.top = getObjectTop(obj) + deltaY + units;
            } 
    		else if (isNN4)
    		{
                theObj.moveBy(deltaX, deltaY);
            }
        }
    } 
    // Retrieve the x coordinate of a positionable object
    function getObjectLeft(obj) 
    {
        var elem = getRawObject(obj);
        var result = 0;
        if (document.defaultView) 
    	{
            var style = document.defaultView;
            var cssDecl = style.getComputedStyle(elem, "");
            result = cssDecl.getPropertyValue("left");
        } 
    	else if (elem.currentStyle) 
    	{
            result = elem.currentStyle.left;
        } 
    	else if (elem.style) 
    	{
            result = elem.style.left;
        } else if (isNN4) 
    	{
            result = elem.left;
        }
        return parseInt(result);
    }
    // Retrieve the y coordinate of a positionable object
    function getObjectTop(obj)  
    {
        var elem = getRawObject(obj);
        var result = 0;
        if (document.defaultView)
    	{
            var style = document.defaultView;
            var cssDecl = style.getComputedStyle(elem, "");
            result = cssDecl.getPropertyValue("top");
        } 
    	else if (elem.currentStyle) 
    	{
            result = elem.currentStyle.top;
        } 
    	else if (elem.style) 
    	{
            result = elem.style.top;
        } 
    	else if (isNN4) 
    	{
            result = elem.top;
        }
        return parseInt(result);
    }
      
    var scrollEngaged = false;
    var scrollInterval;
    var scrollBars = new Array();
    
    function getElementStyle(elemID, IEStyleAttr, CSSStyleAttr) {
        var elem = document.getElementById(elemID);
        if (elem.currentStyle) {
            return elem.currentStyle[IEStyleAttr];
        } else if (window.getComputedStyle) {
            var compStyle = window.getComputedStyle(elem, "");
            return compStyle.getPropertyValue(CSSStyleAttr);
        }
        return "";
    }
     
    function scrollBar(ownerID, ownerContentID, upID, dnID) {
        this.ownerID = ownerID;
        this.ownerContentID = ownerContentID;
        this.index = scrollBars.length;
        this.upButton = document.getElementById(upID);
        this.dnButton = document.getElementById(dnID);
        this.upButton.index = this.index;
        this.dnButton.index = this.index;
        
        this.ownerHeight = parseInt(getElementStyle(this.ownerID, "height", "height"));
     
        this.contentElem = document.getElementById(ownerContentID);
        this.contentFontSize = parseInt(getElementStyle(this.ownerContentID, 
            "fontSize", "font-size"));
        this.contentScrollHeight = (this.contentElem.scrollHeight) ? 
            this.contentElem.scrollHeight : this.contentElem.offsetHeight;
        this.initScroll = initScroll;
    }
    
    function initScroll() 
    {
        this.upButton.onmousedown = handleScrollClick;
        this.upButton.onmouseup = handleScrollStop;
        this.upButton.oncontextmenu = blockEvent;
     
        this.dnButton.onmousedown = handleScrollClick;
        this.dnButton.onmouseup = handleScrollStop;
        this.dnButton.oncontextmenu = blockEvent;
        
        var isIEMac = (navigator.appName.indexOf("Explorer") != -1 && navigator.userAgent.indexOf("Mac") != -1);
        if (!isIEMac) {
            document.getElementById("innerWrapper0").style.overflow = "hidden";
        }
    	//hide the scroll buttons if not required
    	if (this.contentScrollHeight>=this.ownerHeight+30) {
    	this.upButton.style.visibility = "visible";
    	this.dnButton.style.visibility = "visible";
    	}
    }
     
    function handleScrollStop() 
    {
        scrollEngaged = false;
    }
     
    function blockEvent(evt) 
    {
        evt = (evt) ? evt : event;
        evt.cancelBubble = true;
        return false;
    }
     
    function handleScrollClick(evt) 
    {
        var fontSize;
        evt = (evt) ? evt : event;
        var target = (evt.target) ? evt.target : evt.srcElement;
        var index = target.index;
        fontSize = scrollBars[index].contentFontSize;
        fontSize = (target.className == "lineup") ? fontSize : -fontSize;
        scrollEngaged = true;
        scrollBy(index, parseInt(fontSize));
        scrollInterval = setInterval("scrollBy(" + index + ", " + 
            parseInt(fontSize) + ")", 100);
        evt.cancelBubble = true;
        return false;
    }
     
    function scrollBy(index, px) 
    {
        var scroller = scrollBars[index];
        var elem = document.getElementById(scroller.ownerContentID);
        var top = parseInt(elem.style.top);
        var scrollHeight = parseInt(scroller.contentScrollHeight);
        var height = scroller.ownerHeight;
        if (scrollEngaged && top + px >= -scrollHeight + height && top + px <= 0) {
            shiftBy(elem, 0, px);
        } else {
            clearInterval(scrollInterval);
        }
    }
     
    function initScrollers() 
    {
        scrollBars[0] = new scrollBar("outerWrapper0", "innerWrapper0", "lineup0", "linedown0");
        scrollBars[0].initScroll();
    }
    


    et quand je crée 1 fichier avec ce code, j'ai l'erreur qui s'affiche :

    <!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" xml:lang="fr" >
    	<head>
    		<meta http–equiv="Content–Type" content="text/html; charset=utf–8" />
    		<link rel="stylesheet" media="screen,print,handheld" type="text/css" href="css/standard.css" />
    		<script src="fonction_java.js" type="text/javascript"></script>
    	</head>
    	<body onload="initDHTMLAPI(); initScrollers()">
    
        </body>
    </html>
    


    Pouvez-vous m'aider ? Je sais juste que si j'enlève "initScrollers()" de body, je n'ai plus d'erreur.

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2009 à 17:49:11

      Retentes ta chances avec les balises code.

      <code type="html">
      	<html>
      	..
      	</html>
      </code>
      
      <code type="javascript">
      	var nyu = 'nya';
      	..
      </code>
      
      • Partager sur Facebook
      • Partager sur Twitter
        8 octobre 2009 à 17:51:59

        Nyu ? :-° pas sûr qu'elle veule qu'on la change en nya hein... :D
        • Partager sur Facebook
        • Partager sur Twitter
          9 octobre 2009 à 10:30:36

          c'est-à-dire ? ses balises <code>, je dois les insérer où exactement ? ma réponse peut paraitre nulle mais là, je suis un peu perdu ! :-(
          • Partager sur Facebook
          • Partager sur Twitter
            9 octobre 2009 à 10:33:32

            Les balises codes permettent d'avoir un code à peu près lisible quand tu le postes sur le SdZ.
            Tiller a montré comment les utiliser...
            EDIT: Tu peux éditer ton premier post avec le petit crayon
            • Partager sur Facebook
            • Partager sur Twitter
              9 octobre 2009 à 10:53:21

              voilà. j'ai (enfin) compris ! quelle bille !
              • Partager sur Facebook
              • Partager sur Twitter
                9 octobre 2009 à 11:05:37

                Bon okay, j'ai pu trouver ton explication de l'erreur :p
                Alors, si tu cliques sur le "!" jaune de IE, il s'affiche quoi ?
                Est-ce que ça marche sur Firefox ou autre ?
                • Partager sur Facebook
                • Partager sur Twitter
                  9 octobre 2009 à 11:39:49

                  alors, cela fonctionne sur Firefox, ou Chrome. Il n'y a pas d'erreur.
                  Si IE, voici le détail de l'erreur :

                  Détails de l’erreur de la page Web
                  
                  Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
                  Horodateur : Fri, 9 Oct 2009 09:36:54 UTC
                  
                  
                  Message : 'this.upButton' a la valeur Null ou n'est pas un objet.
                  Ligne : 139
                  Caractère : 5
                  Code : 0
                  URI : fonction_java.js
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 octobre 2009 à 11:57:13

                    Essaies avec ça :

                    function scrollBar(ownerID, ownerContentID, upID, dnID) {
                        this.ownerID = ownerID;
                        this.ownerContentID = ownerContentID;
                        this.index = scrollBars.length;
                        alert(this.index);
                        alert(upID);
                        this.upButton = document.getElementById(upID);
                        alert(this.upButton);
                        this.dnButton = document.getElementById(dnID);
                        this.upButton.index = this.index;
                        this.dnButton.index = this.index
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 octobre 2009 à 13:31:37

                      alerte1 : 0
                      alerte2 : lineup0
                      alerte3 : null
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 octobre 2009 à 13:33:38

                        On peut voir ta page html ?

                        Ps: Sous quel IE ça ne marche pas?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 octobre 2009 à 13:35:17

                          et si tu regardes la même chose sur Firefox, ça donne quoi ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 octobre 2009 à 13:41:21

                            ça fonctionne sur Firefox, ou Chrome. Il n'y a pas d'erreur. et j'ai les mêmes résultats pour les alertes.
                            j'utilise IE8 et je sais que sur IE7, ça le faisait. maintenant, les autres versions, sais pas...

                            La page htlm... elle est là-haut, mon 1° post. pour l'instant, je n'ai pas de site en ligne. je fais des tests et je trouve cette erreur.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              9 octobre 2009 à 13:43:18

                              Euh ouai bah ton html il est vide..

                              Aucune ID...

                              Qu'affiches les alerts sous firefox ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                9 octobre 2009 à 13:44:04

                                excuses, j'avais zappé de mettre le résultat de FF sur mon dernier post.
                                exctement pareil que IE :
                                alerte1 : 0
                                alerte2 : lineup0
                                alerte3 : null
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  9 octobre 2009 à 13:46:10

                                  Bah tu retournes là ou t'as pris ton script, et tu regardes quel html il te manque.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    9 octobre 2009 à 13:47:12

                                    Va jeter un oeil dans la console d'erreurs de Firefox :
                                    Outils > Console d'erreurs
                                    Tu verras, l'erreur y est aussi je pense ^^
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      9 octobre 2009 à 13:48:28

                                      De toute façon je trouve le script pourri jusqu'a la moelle.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        9 octobre 2009 à 13:50:36

                                        J'ai même pas cherché à comprendre ce qu'il était sensé faire ^^
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          9 octobre 2009 à 13:51:49

                                          A priori supprimer la scrollbar, et faire le défilement grace à deux boutons haut / bas
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            9 octobre 2009 à 13:54:56

                                            Ou comment se compliquer la vie en trois étapes... J'pense qu'il y a plus simple que tout ce code.. mais bon !
                                            En gros, il aura besoin de rajouter des images ou divs avec id qui vaut ce qu'il a mis en paramètre...
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              9 octobre 2009 à 13:56:21

                                              Bah même, le script fait référence à des this. tu te demandes d'où ils sortent

                                              Ok non j'ai compris d'où ils sortent

                                              Mais le fait est qu'il manque des éléments dans ton html :

                                              "outerWrapper0", "innerWrapper0", "lineup0", "linedown0"
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                9 octobre 2009 à 14:00:50

                                                bon laissez tomber les gars.
                                                je demandais de l'aide (cf post n°1 -> pas de très bonne connaissance en JS), pas de me plomber les ailes.
                                                merci quand-même.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  9 octobre 2009 à 14:01:32

                                                  Citation : Tiller

                                                  Mais le fait est qu'il manque des éléments dans ton html :
                                                  "outerWrapper0", "innerWrapper0", "lineup0", "linedown0"

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    9 octobre 2009 à 14:04:04

                                                    Citation : jobineau

                                                    bon laissez tomber les gars.
                                                    je demandais de l'aide (cf post n°1 -> pas de très bonne connaissance en JS), pas de me plomber les ailes.
                                                    merci quand-même.



                                                    En quoi on te plombe les ailes ? On te dit que le script est pourri, c'est pas le tien si ? T'as pas fait une seule ligne de code de ce script. Donc tes ailes à toi elles n'ont rien, on en a même pas parlé.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Boutons scrolls

                                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                    • Editeur
                                                    • Markdown