function a(){
    c();
    if(isCancel){      
        alert("1");
    } 
}

解决方案 »

  1.   

    <script language="javascript">
    var isCancel = false;
    function a(){
        c();
        if(isCancel == true){
            alert("1");
        } 
    }
    function b(){
        c();
    }
    function c(){
        isCancel = true;
    }
    </script>
    <script>a()</script>这样调用的时候是可以通过的
      

  2.   

    <script language="javascript">
    var isCancelApprove = false;
    function checkCancelApprove(alink,doPath){
        //alert(doPath);
            convertToXML(doPath);
            //如果为True,返回到当前页面
            alert(isCancelApprove);
            if( isCancelApprove == true){
                //alert(isCancelApprove);
            window.event.returnValue = false;
            window.location.href = window.location.href;
            }
            return false;
    }
    //Ajax----------------------
    var req;
    var funDoPath;
    function convertToXML(doPath) {
        var url = "/checkListApprover?method=" + escape("get");
    var contractNo = "";
    funDoPath = doPath;
    parameters = doPath.split('&');
    for(var i = 0;i < parameters.length; i ++) {
      parameter = parameters[i].split('='); 
      if (parameter[0] != null && parameter[0].indexOf("contractNo") > -1) {
     contractNo = parameter[1];
      }
    }

        url = url + "&contractNo=" + escape(contractNo);
                 
        if (window.XMLHttpRequest) {
            req = new XMLHttpRequest( );
        }
        else if (window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        req.open("get",url,true);
        req.onreadystatechange = callback;
        req.send(null);
    }function nonMSPopulate( ) {
        xmlDoc = document.implementation.createDocument("","", null);
        var resp = req.responseText;
        var parser = new DOMParser( );
        var dom = parser.parseFromString(resp,"text/xml");    var flagVal = dom.getElementsByTagName('flag');
        strFlag = flagVal[0].childNodes[0].nodeValue;
        
        var messageVal = dom.getElementsByTagName('message');
        strMessage = messageVal[0].childNodes[0].nodeValue;
        
    if (confirm(strMessage + ". Are you sure to submit?")) {
    //document.forms[0].submit();
    }
    }function msPopulate( ) {  
        var resp = req.responseText;    var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(resp);
        nodes=xmlDoc.documentElement.childNodes;    var flagVal = xmlDoc.getElementsByTagName('flag');
        strFlag = flagVal[0].firstChild.data;
        var messageVal = xmlDoc.getElementsByTagName('message');
        strMessage = messageVal[0].firstChild.data;
        if (strFlag == "0") {
            isCancelApprove = true;
            //alert(strMessage);
            
        } else {
        
         isCancelApprove = true;
         alert(strMessage);
        }
    }function callback( ) {
        if (req.readyState==4) {
            if (req.status == 200) {
                if (window.XMLHttpRequest) {
                    nonMSPopulate( );
                }
                else if (window.ActiveXObject) {
                    msPopulate( );
                }
            }
        }
    }
    原代码是这样的,怕有点乱.我上边写发问时写的那个,刚才我也试了,是可以的.
    看来不是函数的执行顺序问题,我开始的理解错了,不好意思,误导大家了.
    那看看这段代码,问题出在哪里呢?