Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 5 van 5

Onderwerp: 1 script ipv 4 scripts

  1. #1
    Vraag is opgelost

    1 script ipv 4 scripts

    Dit (werkend zonder fouten) script bevat 4 functies :
    Javascript Code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    <script type="text/javascript">
    <!--
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
     
    function MM_swapImgRestore() { //v3.0
      var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
     
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
     
    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    //-->
    </script>
    Ik heb dit in een aparte file geplaatst en "Kleurenwaaier_preload.js" genoemd.
    Op de paginas waar ik dit nodig heb, plaats ik dan enkel de verwijzing :
    <script type="text/javascript" src="Kleurenwaaier_preload.js"></script>

    Die paginas zijn gebaseerd op een template. Maar telkens ik de template aanpas, wordt het volledige script terug in de paginas geplaatst.

    Hoe los ik dit op, of doe ik het plaatsen van de 4 functies in 1 file fout ?
    Alles blijft wel goed werken zonder errors.
    Laatst aangepast door yammaski : 15 maart 2012 om 12:45
    Yammaski.

  2. #2
    Mega Honourable Senior Member csshunter's avatar
    Geregistreerd
    4 augustus 2009
    Hoi Yammaski,
    Even voor de veiligheid: binnen de "Kleurenwaaier_preload.js" zit niet de html-code:
    <script type="text/javascript"><!-- function MM_preloadImages(){ ... enz. //-->?
    Dus puur:
    Javascript Code:
    1
    2
    3
    4
    5
    
    function MM_preloadImages() { //v3.0
    ... enz.
    ... t/m
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    Daarvan uitgaande:
    • 4 functies in 1 file is niet fout, dat kan gewoon.
    • Met de verwijzing naar de functie is ook niets mis, als die in het template zit.


    Vermoeden: het woordelijke script wordt teruggezet, maar óók de verwijzing naar het externe script staat er nog steeds in.
    Klopt dat?

    Want: "Dreamweaver, I presume?" (de plaatser van die scripts voor image-wisseling bij een hover)
    Dan heb je kans dat Dreamweaver:
    • uit de html-code in de pagina merkt dat er een onmouseover="MM_swapImage()" enz. script-aanroep in staat,
    • even controleert of in de <head> van de pagina wel die functie staat (nee dus),
    • er geen flauw benul van heeft dat jij die functie keurig in het externe bestand "Kleurenwaaier_preload.js" hebt gezet,
    • en uit behulpzaamheid het hele gedoe er nog een keer in zet.


    Als dit gokje klopt, zou je kunnen proberen om DW om de tuin te leiden door zowel in de aanroep op de pagina's als in het externe script de MM_ prefixen weg te laten.
    De functies doen het dan net zo hard, want dit is alleen maar de naam. *)
    • Nattigheid is misschien, dat je dit niet even vlug kan implementeren op al bestaande pagina's.


    En (niet helemaal) terzijde: ik vind die javascript-hovers van Dramweaver toch wel behoorlijk uit de tijd. In 2005 hadden browsers (m.n. IE) lang niet de kennis van css die ze nu hebben, en was een js-hover zo gek nog niet om iets cross-browser te krijgen. Maar daar hadden ze toch zo langzamerhand wel gewone css-hovers van kunnen maken?
    Dat kan je natuurlijk ook zelf doen, dan is het hele script niet nodig.

    Met vriendelijke groet,
    CSShunter
    _____________
    *) De MM staat voor MacroMedia, de oorspronkelijke Dreamweaver-maker en-eigenaar voordat Adobe dat werd in 2005.
    In de loop der jaren hebben duizenden sites die MM_preloadImages() enz. functies er op staan, en waarschijnlijk laten ze het daarom maar zo.
    Laatst aangepast door csshunter : 16 maart 2012 om 02:28
    Als een webpagina plots niet doet wat je wilt, raadpleeg dan eerst de html-validator, vóórdat je wanhopig aan de css gaat sleutelen. En vraag de css-validator om op alle punten en komma's te letten. Staat er een (goed) DOCtype boven? Doet de pagina niet gewoon wat moet volgens de html-specificatie en de regels voor css? Daarna pas sleutelen!
    (als dat nog nodig is!) - O, ken je de Webrichtijnen (test) al?

  3. #3
    Even voor de veiligheid: binnen de "Kleurenwaaier_preload.js" zit niet de html-code:
    De code die ik vermelde is degene die in de head van de pagina zelf staat, bij het externe js staat dit er niet bij.

    Het is idd Dreamweaver waarmee het gemaakt is. In de body onload staat nogmaals "MM_preloadImages(' .... ').
    Dus kan ik misschien beter het script in de head laten staan en het externe verwijderen ?
    In het voorbeeld hieronder blijft de body tag dan weer wel gewoon.

    De hovers in css maken ... dat lijkt me wat ingewikkeld als je de kleurenwaaier eens bekijkt !?
    Yammaski.

  4. #4
    Mega Honourable Senior Member csshunter's avatar
    Geregistreerd
    4 augustus 2009
    Hoi yammaski,
    Dus kan ik misschien beter het script in de head laten staan en het externe verwijderen ?
    Ja, zou ik maar doen > zoveel code is het nu ook weer niet dat het erg nadelig zou kunnen zijn voor de pagina-snelheid.
    Het enige is, dat het MM_ codeblokje nu op de server op elke pagina staat, wat wat server-ruimte vraagt.
    Daar zou je nog van af kunnen komen door het blokje niet als extern javascript aan te roepen, maar als php-include.
    • Zie dit topic.
    • Maar je hebt een .asp site en geen .php site; ik weet niet of iets dergelijks ook met .asp kan.


    =======
    De hovers in css maken ... dat lijkt me wat ingewikkeld als je de kleurenwaaier eens bekijkt !?
    Ah, het gaat om de bekende mooie kikkertjes!
    Dan lijkt het me niet alleen ingewikkeld, maar bijkans schier onmogelijk.
    • De kikkervormen zijn vanwege hun overlappingen niet simpel in rechthoekjes te vangen; of je zou er waanzinnig veel opgesplitste kleintjes van moeten maken, en dan, als je het mooi wilt doen, per kleur à la dit:
    • Dat is niet realistisch, dus ben je aangewezen op een image-map.
    • En css-hovers over image-maps werken niet (iig niet cross-browser).
    • Dus ben je aangewezen op javascript voor het hoveren.


    Met vriendelijke groet,
    CSShunter
    Als een webpagina plots niet doet wat je wilt, raadpleeg dan eerst de html-validator, vóórdat je wanhopig aan de css gaat sleutelen. En vraag de css-validator om op alle punten en komma's te letten. Staat er een (goed) DOCtype boven? Doet de pagina niet gewoon wat moet volgens de html-specificatie en de regels voor css? Daarna pas sleutelen!
    (als dat nog nodig is!) - O, ken je de Webrichtijnen (test) al?

  5. #5
    OK ... bedankt weeral csshunter.



    Groeten,
    Yammaski.
    Yammaski.

  • Dit topic is automatisch gesloten omdat er sinds vier maanden niet meer op gereageerd is.

    Indien gewenst kan de topicstarter een verzoek tot heropening indienen.
  • Berichtenregels

    • U mag geen nieuwe vragen starten.
    • U mag niet reageren op berichten.
    • U mag geen bijlagen versturen.
    • U mag uw berichten niet bewerken.
    •  
    Helpmij.nl
    Helpmij.nl

    Helpmij.nl en business

    Partners
    Sponsoren
    Linkpartners
    Aanbiedingen