2010-12-15 21 views
0

J'utilise une fonction addOnloadEvent (initSwfUpload) pour initer le swfupload.swfupload init avec addOnloadEvent

Voici mes fonctions

function addOnloadEvent(fnc){ 
    if (typeof window.addEventListener != "undefined") 
    window.addEventListener("load", fnc, false); 
    else if (typeof window.attachEvent != "undefined") { 
    window.attachEvent("onload", fnc); 
    } 
    else { 
    if (window.onload != null) { 
     var oldOnload = window.onload; 
     window.onload = function (e) { 
     oldOnload(e); 
     window[fnc](); 
     }; 
    } 
    else 
     window.onload = fnc; 
    } 

} 

function initSwfUpload() 
{ 
     var swf = new SWFUpload({ 
           // Backend Settings 
           upload_url: "../../../upload.php", 
           ... 
           .... 
     }) 

} 

Son travail bien, mais maintenant je dois utiliser le addPostParam (nom, valeur) mais swf n'est pas disponible.

Voici le code

<script type="text/javascript"> 
     addOnloadEvent(initSwfUpload); 
     swf.addPostParam('c','1'); 
</script> 

Je reçois le swf message est indéfini.

Il est possible d'utiliser l'approche addOnloadEvent pour réaliser ce qui précède.

Pour plusieurs raisons que je ne veux pas utiliser le ro SWFUpload classique

initialisation
var swfu; 
window.onload = function() { 
swfu = new SWFUpload({ 
    ....... 

Merci

Répondre

1

Vous devez définir l'objet SFWU première en dehors fonction pour la rendre globale.

function addOnloadEvent(fnc){ 
    if (typeof window.addEventListener != "undefined") 
    window.addEventListener("load", fnc, false); 
    else if (typeof window.attachEvent != "undefined") { 
    window.attachEvent("onload", fnc); 
    } 
    else { 
    if (window.onload != null) { 
     var oldOnload = window.onload; 
     window.onload = function (e) { 
     oldOnload(e); 
     window[fnc](); 
     }; 
    } 
    else 
     window.onload = fnc; 
    } 

} 

var swf; 

function initSwfUpload() 
{ 
     swf = new SWFUpload({ 
           // Backend Settings 
           upload_url: "../../../upload.php", 
           ... 
           .... 
     }) 

} 

Ensuite, vous pouvez l'utiliser.

<script type="text/javascript"> 
     addOnloadEvent(initSwfUpload); 
     swf.addPostParam('c','1'); 
</script>