0

我正在使用 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(name, value) 但 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({
  .......

谢谢

4

1 回答 1

1

您需要首先在函数外部定义 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>
于 2011-01-20T08:43:30.857 回答