Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Passaggio valori problematico

    Ciao a tutti, sto cercando di far caricare alcuni swf tramite script JS nella stessa pagina.
    Per esemio:

    codice:
    click
    e il codice di caricaSwf è questo:

    codice:
    function caricaSwf(x) {
    
    	rim0 = document.getElementById("corpo_sx").childNodes[0];
    	rim1 = document.getElementById("corpo_sx").childNodes[1];
    	if (rim0 && rim1) /*se esiste qualcosa da rimuovere*/ {
    		document.getElementById("corpo_sx").removeChild(rim0);
    		document.getElementById("corpo_sx").removeChild(rim1);
    	}
    	else if (rim0 && !rim1)
    		document.getElementById("corpo_sx").removeChild(rim0);
    		
    
    	object = document.createElement("object");
    	object.setAttribute("width","500");
    	object.setAttribute("height","550");
    	
    	embed = document.createElement("embed");
    	embed.setAttribute("src",x);
    	embed.setAttribute("width","500");
    	embed.setAttribute("height","550");	
    
    	param = document.createElement("param");
    	param.setAttribute("value",x);
    	param.setAttribute("name","movie");
    	
    	object.appendChild(param);
    	object.appendChild(embed);
    		
    	document.getElementById("corpo_sx").appendChild(object);	
    }
    ci sono un po' di trick per rimuovere l'oggetto swf visualizzato prima, dato che ho più di un link da cliccare.
    Il problema è il classico: con Firefox tutto ok, con Explorer (6) ottengo un errore, del tipo "Argomento non valido". Sto sbagliando con gli apici di qualche funzione?
    Vi ringrazio in anticipo per qualsiasi consiglio / suggerimento

  2. #2
    Aggiungo una info: ho notato che le linee

    codice:
    	object.appendChild(param);
    	object.appendChild(embed);
    non sono affatto apprezzate da IE, ed è lì che mi genera errore.

    :berto:

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    senza entrare nei dettagli del tuo codice, io faccio una cosa del genere
    seguendo la regola che IE vuole l' embed, tutti gli altri l' object
    codice:
    var path='percorso/file.swf';
    if(!document.all || window.opera){
    	var obj=createElement('object')
    	obj.setAttribute('data',path);
    	var par1=createElement('param');
    	par1.setAttribute('name','movie');
    	par1.setAttribute('value',path);
    	obj.appendChild(par1);
    } else {
    	var obj=createElement('embed');
    	obj.setAttribute('src',path);
    }
    // comuni ad entrambi
    obj.setAttribute('type','application/x-shockwave-flash')
    obj.setAttribute('width','640');
    obj.setAttribute('height','480');
    
    // appendo dove serve
    riferimentoContenitore.appendChild(obj);
    ciao

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    scusa, mi sono dimenticato i document. davanti ad ogni createElement
    (ultimamente uso una funzione create che crea, appende e setta attributi in un colpo solo...)

  5. #5
    ciao Xinod, grazie mille per il suggerimento. Con un paio di correzioni il tuo codice funziona alla grande, ma non ho capito

    codice:
    	obj.setAttribute('data',path);
    Object non richiede gli attributi width ed height? tu così gli stai passando solo path, che è il percorso del file...


    EDIT: tranquillo x document, me ne ero accorto

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    lo faccio dopo, nella parte // comuni ad entrambi

  7. #7
    Ok perfetto, ho ancora un piccolo dubbio poi ho finito di scocciare

    Il mio problema iniziale dunque deriva dal fatto che con explorer cerco di creare un "param", ed Explorer stesso ha problemi con questo tag?
    Visto che nella tua funzione lo crei solo se !explorer (!document.all)...

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    credo sia l' embed appeso all' object,
    in pratica io appendo dove posso un satay,
    (anche nel markup lo userei perche' piu' aderente agli standard),
    creato via DOM IE non lo digerisce per cui gli fornisco solo quello che vuole, un embed

    ciao

  9. #9

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 © 2024 vBulletin Solutions, Inc. All rights reserved.