инициализация swfupload с помощью addOnloadEvent - PullRequest
0 голосов
/ 15 декабря 2010

Я использую функцию addOnloadEvent (initSwfUpload), чтобы инициировать SWFUpload.

Вот мои функции

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",
                                ...
                                ....
        })

}

Работает нормально, но теперь мне нужно использовать addPostParam (имя, значение) но swf недоступен.

Вот код

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

Я получаю сообщение, что swf не определен.

Возможно использование подхода addOnloadEvent для достижения вышеуказанного.

По нескольким причинам я не хочу использовать ro swfupload init

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

Спасибо

1 Ответ

1 голос
/ 20 января 2011

Вам нужно сначала определить объект swfu вне функции, чтобы сделать его глобальным.

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",
                                ...
                                ....
        })

}

Затем вы можете использовать это.

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