Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Incompatibilità tra funzioni

    In una pagina PHP mettendo questi 2 script ( uno interno che trovate sotto e l'altro esterno )
    essi non funzionano mentre se li uso separatamente funzionano.

    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_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_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];}
    }


    mentre all'interno di un file js ho:
    /**
    * reflection.js v1.6
    *
    * Contributors: Cow http://cow.neondragon.net
    * Gfx http://www.jroller.com/page/gfx/
    * Sitharus http://www.sitharus.com
    * Andreas Linde http://www.andreaslinde.de
    * Tralala, coder @ http://www.vbulletin.org
    *
    * Freely distributable under MIT-style license.
    */

    /* From prototype.js */
    document.getElementsByClassName = function(className) {
    var children = document.getElementsByTagName('*') || document.all;
    var elements = new Array();

    for (var i = 0; i < children.length; i++) {
    var child = children[i];
    var classNames = child.className.split(' ');
    for (var j = 0; j < classNames.length; j++) {
    if (classNames[j] == className) {
    elements.push(child);
    break;
    }
    }
    }
    return elements;
    }

    var Reflection = {
    defaultHeight : 0.5,
    defaultOpacity: 0.5,

    add: function(image, options) {
    Reflection.remove(image);

    doptions = { "height" : Reflection.defaultHeight, "opacity" : Reflection.defaultOpacity }
    if (options) {
    for (var i in doptions) {
    if (!options[i]) {
    options[i] = doptions[i];
    }
    }
    } else {
    options = doptions;
    }

    try {
    var d = document.createElement('div');
    var p = image;

    var classes = p.className.split(' ');
    var newClasses = '';
    for (j=0;j<classes.length;j++) {
    if (classes[j] != "reflect") {
    if (newClasses) {
    newClasses += ' '
    }

    newClasses += classes[j];
    }
    }

    var reflectionHeight = Math.floor(p.height*options['height']);
    var divHeight = Math.floor(p.height*(1+options['height']));

    var reflectionWidth = p.width;

    if (document.all && !window.opera) {
    /* Copy original image's classes & styles to div */
    d.className = newClasses;
    p.className = 'reflected';

    d.style.cssText = p.style.cssText;
    p.style.cssText = 'vertical-align: bottom';

    var reflection = document.createElement('img');
    reflection.src = p.src;
    reflection.style.width = reflectionWidth+'px';

    reflection.style.marginBottom = "-"+(p.height-reflectionHeight)+'px';
    reflection.style.filter = 'flipv progidXImageTransform.Microsoft.Alpha(opacity='+(options['opacity']*100)+', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(options['height']*100)+')';

    d.style.width = reflectionWidth+'px';
    d.style.height = divHeight+'px';
    p.parentNode.replaceChild(d, p);

    d.appendChild(p);
    d.appendChild(reflection);
    } else {
    var canvas = document.createElement('canvas');
    if (canvas.getContext) {
    /* Copy original image's classes & styles to div */
    d.className = newClasses;
    p.className = 'reflected';

    d.style.cssText = p.style.cssText;
    p.style.cssText = 'vertical-align: bottom';

    var context = canvas.getContext("2d");

    canvas.style.height = reflectionHeight+'px';
    canvas.style.width = reflectionWidth+'px';
    canvas.height = reflectionHeight;
    canvas.width = reflectionWidth;

    d.style.width = reflectionWidth+'px';
    d.style.height = divHeight+'px';
    p.parentNode.replaceChild(d, p);

    d.appendChild(p);
    d.appendChild(canvas);

    context.save();

    context.translate(0,image.height-1);
    context.scale(1,-1);

    context.drawImage(image, 0, 0, reflectionWidth, image.height);

    context.restore();

    context.globalCompositeOperation = "destination-out";
    var gradient = context.createLinearGradient(0, 0, 0, reflectionHeight);

    gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
    gradient.addColorStop(0, "rgba(255, 255, 255, "+(1-options['opacity'])+")");

    context.fillStyle = gradient;
    if (navigator.appVersion.indexOf('WebKit') != -1) {
    context.fill();
    } else {
    context.fillRect(0, 0, reflectionWidth, reflectionHeight*2);
    }
    }
    }
    } catch (e) {
    }
    },

    remove : function(image) {
    if (image.className == "reflected") {
    image.className = image.parentNode.className;
    image.parentNode.parentNode.replaceChild(image, image.parentNode);
    }
    }
    }

    function addReflections() {
    var rimages = document.getElementsByClassName('reflect');
    for (i=0;i<rimages.length;i++) {
    var rheight = null;
    var ropacity = null;

    var classes = rimages[i].className.split(' ');
    for (j=0;j<classes.length;j++) {
    if (classes[j].indexOf("rheight") == 0) {
    var rheight = classes[j].substring(7)/100;
    } else if (classes[j].indexOf("ropacity") == 0) {
    var ropacity = classes[j].substring(8)/100;
    }
    }

    Reflection.add(rimages[i], { height: rheight, opacity : ropacity});
    }
    }

    var previousOnload = window.onload;
    window.onload = function () { if(previousOnload) previousOnload(); addReflections(); }

    C'è incompatibilità?

    Ho provato a modificare lo script di sopra modificando le variabili utilizzate ma il problema è lo stesso.

    Come si può risolvere?

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ciao triple h

    sicuramente nella pagina avrai un
    codice:
    <body onload="QUALCOSA">
    che sostituisce (o viene sostituito da)
    codice:
    var previousOnload = window.onload;
    window.onload = function () { if(previousOnload) previousOnload(); addReflections(); }
    che si trova nel file js
    per risolvere dovresti "aggiungere" le funzioni all'onload invece di assegnarle.
    Io mi sono fatto questa funzioncina per aggiungere qualcosa all'onload
    codice:
    //Per aggiungere qualcosa all'onload senza eliminare quello che eventualmente c'è già
    function aggiungiOnLoad(cosa){
    	var strOnload=''
    	if(window.onload){
    		strOnload = window.onload
    		strOnload = strOnload.toString()
    		strOnload = strOnload.substr(strOnload.indexOf('{')+1,strOnload.lastIndexOf('}')-strOnload.indexOf('{')-1)
    	}else strOnload=''
    	window.onload=new Function(strOnload+cosa)
    }
    da usare in sostituzione di window.onload=.... e di <body onload="...">

  3. #3
    Nel body ho

    <body onload="MM_preloadImages('img/bot_roll_08.gif','img/bot_roll_09.gif','img/bot_roll_10.gif','img/bot_roll_11.gif')">

    ma volendo usare la tua funzione cosa devo fare? Come la devo richiamare e che parametri passare?

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    lascia perdere la mia funzioncina... è meglio quello che c'è già nel tuo js

    nella pagina fa la stessa cosa... invece di mettere la funzione all'onload del tag body metti
    codice:
    var xOnload = window.onload;
    window.onload = function () { if(xOnload) xOnload(); MM_preloadImages('img/bot_roll_08.gif','img/bot_roll_09.gif','img/bot_roll_10.gif','img/bot_roll_11.gif'); }

  5. #5
    Devo mettere questo codice all'interno del tag head oppure dopo il body?
    E come mi devo comportare con il file JS esterno ?

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    quel codice lo devi mettere tra i tag <script> e </script> che può stare sia nell'head della pagina che nel body
    Il js va bene com'è

  7. #7
    Adesso provo ma anche se dovesse funzionare ( cmq ti ringrazione per le tue risposte ) in alcuni tag a uso la segente sintassi ( basandomi sempre sulle funzione javascript interne ):

    <a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('sfoglia','','images/rool_over/sfoglia-button.gif',1)">

    In questi casi penso che ci sia sempre il problema. Cmq adesso provo il tuo codice

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da triple h
    Adesso provo ma anche se dovesse funzionare ( cmq ti ringrazione per le tue risposte ) in alcuni tag a uso la segente sintassi ( basandomi sempre sulle funzione javascript interne ):

    <a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('sfoglia','','images/rool_over/sfoglia-button.gif',1)">

    In questi casi penso che ci sia sempre il problema. Cmq adesso provo il tuo codice
    io non penso proprio... il problema di prima era l'onload

  9. #9
    Non funziona.

    <script type="text/JavaScript">
    <!--
    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_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_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>
    <script type="text/javascript" src="js/reflection.js"></script>
    <script>
    var xOnload = window.onload;
    window.onload = function () { if(xOnload) xOnload(); MM_preloadImages('images/rool_over/home-button.gif','images/rool_over/libri-button.gif','images/rool_over/autori-button.gif','images/rool_over/diario-button.gif','images/rool_over/mappe-button.gif','images/rool_over/contatti-button.gif'); }&& (!dw.getDocumentDOM().isDesignViewUpdated()))
    </script>

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da triple h
    <script>
    var xOnload = window.onload;
    window.onload = function () { if(xOnload) xOnload(); MM_preloadImages('images/rool_over/home-button.gif','images/rool_over/libri-button.gif','images/rool_over/autori-button.gif','images/rool_over/diario-button.gif','images/rool_over/mappe-button.gif','images/rool_over/contatti-button.gif'); }&& (!dw.getDocumentDOM().isDesignViewUpdated()))
    </script>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.