如果在方法有如下调用,实现页面跳转
function f(){
    fn();
    callotherMethod(); 
}
function fn(){
    .....
    if(condition){
         window.location = xxx.html;
          //这地方应该加入什么方法,终止后面所有js方法的执行?
    }
    otherMethod();
}如果使用throw new Error()的方法,最外层需要加try/catch太麻烦了,不使用这种方式
有没有更好的办法来实现这种功能,谢谢!
请高手赐教,不胜感激。

解决方案 »

  1.   

    window.location = xxx.html;
    有这句话的话,不是跳转了嘛,后面的应该不会执行了吧。
      

  2.   

    window.location = xxx.html;
    return;
      

  3.   

    if(condition){
      window.location = xxx.html;
      //这后面的如果还会执行到,那么这么写就让它执行不到了:
       for(;;);
       //……后面的代码
      }
      

  4.   

    function f(){
      fn();
      callotherMethod();  
    }
    function fn(){
      .....
      if(condition){
      window.location = xxx.html;
      //这地方应该加入什么方法,终止后面所有js方法的执行?
      }else{otherMethod();}
    }
    楼主你都window.location了  后面的东西本来就不会执行了,加什么都不会执行的。页面已经跳转了
      

  5.   

    在某种情况下 是不会执行的  人家是先把js代码执行完 然后再跳转 
    我要的是执行到 window.location = xxx.html; 就跳转 实际上是不跳转的
      

  6.   

    哥  你害的我好惨  提示我切换 等待 vs   关闭 打开N此都没用 只好重启了....
      

  7.   

    lz检查代码 都return了还不行???
      

  8.   

    function f(){
      if(!fn()){
        callotherMethod();  
      }
    }
    function fn(){
      .....
      if(condition){
      window.location = xxx.html;
      //这地方应该加入什么方法,终止后面所有js方法的执行?
      return true;
      }
      otherMethod();
      return false;
    }
    希望你能在理解下 代码的流程控制
    你代码的执行顺序是控制在你自己手中的
    以后此类问题 尽量自己动手解决
      

  9.   

    好吧 我贴上代码   使用的uploadify 插件 在实现上传按钮方法的时候判断文件名是否含有逗号 $("#fileInput1").uploadify({
                'uploader': 'images/uploadify.swf',
                'script': 'uploadfile.aspx',
                'cancelImg': 'images/cancel.png',
                'auto': false,
                'multi': true,
                'sizeLimit':1024*1024*1024*1,
                'simUploadLimit':1,//允许同时上传的个数
                'queueSizeLimit':5,//当允许多文件生成时,设置选择文件的个数,默认值:999 。
                'fileDesc':'请选择rar doc pdf文件',//提示
                'fileExt':'*.doc;*.pdf;*.rar',//要求
                'onSelectOnce':function (event,data){fileOkAndKiss(data);},
                'onCancel':function (event,queueId,fileObj,data){fileOkAndKiss(data);},
                'onProgress':function(event,queueId,fileObj,data){
    //                window.location.reload();
    //                return;
                    //上传时触发
                    //完成百分比  当前上传多少  总工上传多少   上传速度(可以做判断 》1024 为M  小于则KB)
                    //$("#sa").html(data.percentage+" % <br>"+Math.round(data.bytesLoaded/1024/1024)+"MB<br>"+Math.round(data.allBytesLoaded/1024/1024)+"MB<br>"+Math.round(data.speed)+"KB");
                },
                'onError':function(event,queueId,fileObj,errorObj)
                {
                    //错误时触发
                    //错误的类型,有三种‘HTTP’, ‘IO’, or ‘Security’//错误的描述
                    $("Span5").html(errorObj.type+"<br>"+errorObj.info).css("color","red");
                },
                'onComplete':function(event,queueId,fileObj,response,data)
                {
                    $("#Span2").html("剩余文件:"+data.fileCount);
                    //把路径放到数组里边  最后统一插入到数据库
                    //var  t=response.split('*')[0]  //.split('~/')[1];
                    var  t=response.split('*')[0];
                    if(t!="0")
                    {
                        fs="<tr><td align=left>"+fileObj.name+"</td><td>"+fileBytehandle(fileObj.size)+"</td><td></td><td></td></tr>";
                        $(fs).appendTo($("#showoldfileName"));
                        fileArrayString+=t+','+fileObj.name+','+fileBytehandle(fileObj.size)+'!';
                    }
                    
                },
                'onAllComplete':function(event,data){                 
                    //提交到数据库
                    var a=QLflow.savaFile(fileArrayString,tmpid,ndid,nuid);
                    if(a==0)
                        alert("上传文件失败");
                     //上传完毕 然后清空
                     fileArrayString="";
                    //提示总工上传的个数  已上传的  错误的  最后提示正确的已插入的数据库中
                }
                
            });
            
    });
    //上传文件  上传或取消时  读取文件的总大小和文件个数
    function fileOkAndKiss(data)
    {       
            
            var abt="文件总大小约为:";
            $("#Span0").html("文件个数:"+data.fileCount);
            abt+=fileBytehandle(data.allBytesTotal);
            if(data.fileCount==0)
            {
                abt="文件总大小约为:0KB";   
            }
            $("#Span1").html(abt);
            $("#Span2").html("剩余文件:"+data.fileCount); 
    }
      

  10.   

    插件原有的代码
    if(jQuery) {
    (function (a) {
    a.extend(a.fn,{
    uploadify:function (b) {
    a(this).each(function () {
    settings=a.extend({
    id:a(this).attr("id"),uploader:"uploadify.swf",script:"uploadify.php",expressInstall:null,folder:"",height:30,width:110,cancelImg:"cancel.png",wmode:"opaque",scriptAccess:"sameDomain",fileDataName:"Filedata",method:"POST",queueSizeLimit:999,simUploadLimit:1,queueID:false,displayData:"percentage",onInit:function () {
    },onSelect:function () {
    },onQueueFull:function () {
    },onCheck:function () {
    },onCancel:function () {
    },onError:function () {
    },onProgress:function () {
    },onComplete:function () {
    },onAllComplete:function () {
    }
    },b);
    var e=location.pathname;
    e=e.split("/");
    e.pop();
    e=e.join("/")+"/";
    var f={
    };
    f.uploadifyID=settings.id;
    f.pagepath=e;
    if(settings.buttonImg) {
    f.buttonImg=escape(settings.buttonImg)
    }if(settings.buttonText) {
    f.buttonText=escape(settings.buttonText)
    }if(settings.rollover) {
    f.rollover=true
    }f.script=settings.script;
    f.folder=escape(settings.folder);
    if(settings.scriptData) {
    var g="";
    for(var d in settings.scriptData) {
    g+="&"+d+"="+settings.scriptData[d]
    }f.scriptData=escape(g.substr(1))
    }f.width=settings.width;
    f.height=settings.height;
    f.wmode=settings.wmode;
    f.method=settings.method;
    f.queueSizeLimit=settings.queueSizeLimit;
    f.simUploadLimit=settings.simUploadLimit;
    if(settings.hideButton) {
    f.hideButton=true
    }if(settings.fileDesc) {
    f.fileDesc=settings.fileDesc
    }if(settings.fileExt) {
    f.fileExt=settings.fileExt
    }if(settings.multi) {
    f.multi=true
    }if(settings.auto) {
    f.auto=true
    }if(settings.sizeLimit) {
    f.sizeLimit=settings.sizeLimit
    }if(settings.checkScript) {
    f.checkScript=settings.checkScript
    }if(settings.fileDataName) {
    f.fileDataName=settings.fileDataName
    }if(settings.queueID) {
    f.queueID=settings.queueID
    }if(settings.onInit()!==false) {
    a(this).css("display","none");
    a(this).after('<div id="'+a(this).attr("id")+'Uploader"></div>');
    swfobject.embedSWF(settings.uploader,settings.id+"Uploader",settings.width,settings.height,"9.0.24",settings.expressInstall,f,{
    quality:"high",wmode:settings.wmode,allowScriptAccess:settings.scriptAccess
    });
    if(settings.queueID==false) {
    a("#"+a(this).attr("id")+"Uploader").after('<div id="'+a(this).attr("id")+'Queue" class="uploadifyQueue"></div>')
    }
    }if(typeof(settings.onOpen)=="function") {
    a(this).bind("uploadifyOpen",settings.onOpen)
    }a(this).bind("uploadifySelect",{
    action:settings.onSelect,queueID:settings.queueID
    },function (j,h,i) {
    if(j.data.action(j,h,i)!==false) {
    // var k=Math.round(i.size/1024*100)*0.01;
    // var l="KB";
    // if(k>1000) {
    // k=Math.round(k*0.001*100)*0.01;
    // l="MB"
    // }
    //高楠
                                var k=Math.round(i.size/1024);
    var l="KB";
    if(k>1024) {
    k=Math.round(k/1024);
    l="MB"
    }
    //end
                                var m=k.toString ().split(".");
    if(m.length>1) {
    k=m[0]+"."+m[1].substr(0,2)
    }else {
    k=m[0]
    }if(i.name.length>20) {
    fileName=i.name.substr(0,20)+"..."
    }else {
    fileName=i.name
    }queue="#"+a(this).attr("id")+"Queue";
    if(j.data.queueID) {
    queue="#"+j.data.queueID
    }a(queue).append('<div id="'+a(this).attr("id")+h+'" class="uploadifyQueueItem"><div class="cancel"><a href="javascript:jQuery(\'#'+a(this).attr("id")+"').uploadifyCancel('"+h+'\')"><img src="'+settings.cancelImg+'" border="0" /></a></div><span class="fileName">'+fileName+" ("+k+l+')</span><span class="percentage"></span><div class="uploadifyProgress"><div id="'+a(this).attr("id")+h+'ProgressBar" class="uploadifyProgressBar"><!--Progress Bar--></div></div></div>')
    }
    });
    if(typeof(settings.onSelectOnce)=="function") {
    a(this).bind("uploadifySelectOnce",settings.onSelectOnce)
    }a(this).bind("uploadifyQueueFull",{
    action:settings.onQueueFull
    },function (h,i) {
    if(h.data.action(h,i)!==false) {
        alert("一次最多上传"+i+"个文件");
    //alert("The queue is full.  The max size is "+i+".")
    }
    });
    a(this).bind("uploadifyCheckExist",{
    action:settings.onCheck
    },function (m,l,k,j,o) {
    var i=new Object();
    i=k;
    i.folder=e+j;
    if(o) {
    for(var h in k) {
    var n=h
    }
    }a.post(l,i,function (r) {
    for(var p in r) {
    if(m.data.action(m,l,k,j,o)!==false) {
    var q=confirm("Do you want to replace the file "+r[p]+"?");
    if(!q) {
    document.getElementById(a(m.target).attr("id")+"Uploader").cancelFileUpload(p,true,true)
    }
    }
    }if(o) {
    document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(n,true)
    }else {
    document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(null,true)
    }
    },"json")
    });
    a(this).bind("uploadifyCancel",{
    action:settings.onCancel
    },function (l,h,k,m,j) {
    if(l.data.action(l,h,k,m,j)!==false) {
    var i=(j==true)?0:250;
    a("#"+a(this).attr("id")+h).fadeOut(i,function () {
    a(this).remove()
    })
    }
    });
    if(typeof(settings.onClearQueue)=="function") {
    a(this).bind("uploadifyClearQueue",settings.onClearQueue)
    }var c=[];
    a(this).bind("uploadifyError",{
    action:settings.onError
    },function (l,h,k,j) {
    if(l.data.action(l,h,k,j)!==false) {
    var i=new Array(h,k,j);
    c.push(i);
    //高楠
    if(j.type=="File Size")
    {
        alert("文件大小不能超过1G");    
    }
    //end
    a("#"+a(this).attr("id")+h+" .percentage").text(" - "+j.type+" Error");
    a("#"+a(this).attr("id")+h).addClass("uploadifyError")
    }
    });
    a(this).bind("uploadifyProgress",{
    action:settings.onProgress,toDisplay:settings.displayData
    },function (j,h,i,k) {
    if(j.data.action(j,h,i,k)!==false) {
    a("#"+a(this).attr("id")+h+"ProgressBar").css("width",k.percentage+"%");
    if(j.data.toDisplay=="percentage") {
    //displayData=" - "+k.percentage+"%"
    //高楠
    var gnk="";
    if(k.speed<1024)
    {
        gnk=k.speed+"KB/s";
    }else
    {
        gnk=Math.round(k.speed/1024)+"M/s";
    }
    displayData=" - "+k.percentage+"%"+" - "+gnk;
    //end
    }if(j.data.toDisplay=="speed") {    
    displayData=" - "+k.speed+"KB/s"
    }if(j.data.toDisplay==null) {
    displayData=" "
    }a("#"+a(this).attr("id")+h+" .percentage").text(displayData)
    }
    });
    a(this).bind("uploadifyComplete",{
    action:settings.onComplete
    },function (k,h,j,i,l) {
    if(k.data.action(k,h,j,unescape(i),l)!==false) {
    a("#"+a(this).attr("id")+h+" .percentage").text(" - Completed");
    a("#"+a(this).attr("id")+h).fadeOut(250,function () {
    a(this).remove()
    })
    }
    });
    if(typeof(settings.onAllComplete)=="function") {
    a(this).bind("uploadifyAllComplete",{
    action:settings.onAllComplete
    },function (h,i) {
    if(h.data.action(h,i)!==false) {
    c=[]
    }
    })
    }
    })
    },uploadifySettings:function (f,j,c) {
    var g=false;
    a(this).each(function () {
    if(f=="scriptData"&&j!=null) {
    if(c) {
    var i=j
    }else {
    var i=a.extend(settings.scriptData,j)
    }var l="";
    for(var k in i) {
    l+="&"+k+"="+escape(i[k])
    }j=l.substr(1)
    }g=document.getElementById(a(this).attr("id")+"Uploader").updateSettings(f,j)
    });
    if(j==null) {
    if(f=="scriptData") {
    var b=unescape(g).split("&");
    var e=new Object();
    for(var d=0;d<b.length;d++) {
    var h=b[d].split("=");
    e[h[0]]=h[1]
    }g=e
    }return g
    }
    },uploadifyUpload:function (b) {
    a(this).each(function () {
    document.getElementById(a(this).attr("id")+"Uploader").startFileUpload(b,false)
    })
    },uploadifyCancel:function (b) {
    a(this).each(function () {
    document.getElementById(a(this).attr("id")+"Uploader").cancelFileUpload(b,true,false)
    })
    },uploadifyClearQueue:function () {
    a(this).each(function () {
    document.getElementById(a(this).attr("id")+"Uploader").clearFileUploadQueue(false)
    })
    }
    })
    })(jQuery)
    };
      

  11.   


     'onProgress':function(event,queueId,fileObj,data){
                      if(fileObj.name.length>50)
    {
             alert("文件名不能大于50");
    window.location.reload();return;
    }            
                    //上传时触发
                    //完成百分比  当前上传多少  总工上传多少   上传速度(可以做判断 》1024 为M  小于则KB)
                    //$("#sa").html(data.percentage+" % <br>"+Math.round(data.bytesLoaded/1024/1024)+"MB<br>"+Math.round(data.allBytesLoaded/1024/1024)+"MB<br>"+Math.round(data.speed)+"KB");
                },现象就是 执行完插件里边该执行的代码   最后才执行刷新代码  也就是上传后刷新  我要的效果是 只要文件名>50 就不执行上传的代码  因为我对插件里边的js代码看不懂  如上  所以 无法解决  只能数据库中设置max了  汗....还有把 ,替换成(逗号)  在后台 .  汗......我希望他 点击上传时判断文件名长度以及是否含有逗号 如果则不上传 给用户提示  正确了则上传
      

  12.   

    人家插件里边 有这个 uploadifyError  是bind的  我不知道 怎么绑定的  对那个不熟大家可以在插件js里边搜索下uploadifyError  那块 是判断 文件size的  如果>你设定的值上传就不会执行了...
    由于本人才疏学浅 所以看不懂  求解释
      

  13.   

    http://files.cnblogs.com/0banana0/%E4%B8%8A%E4%BC%A0%E6%8E%A7%E4%BB%B6.zip    上传控件下载 呵呵
      

  14.   

    常规方法,return false, callotherMethod时候检测一下值吧。