齐晓威_518 发表于 2013-1-29 08:34:48

window.showModalDialog弹出框问题分析

function viewProMulgatePage(tempId){
var url="******&templateId=" + tempId;
var result = window.showModalDialog(url,'',"dialogWidth=1024px;dialogHeight=595px;top=0;left=0;help:0;resizable:0;status=0;scrollbars=0;center=true");
if(result){
alert("成功!");
var urlStr= gotoMmmIndexPageUrl("mmsEdit.do?action=MmsMain");
   window.location.href =urlStr;
}
}

//根据请求值,追加条件
function gotoMmmIndexPageUrl(url){

    var templateName='<c:out value="${requestScope.templateName}"/>';
   
    var createUser='<c:out value="${requestScope.createUser}"/>';
   
    var createStartDate='<c:out value="${requestScope.createStartDate}"/>';
   
var createEndDate='<c:out value="${requestScope.createEndDate}"/>';

var promulgateStartDate='<c:out value="${requestScope.promulgateStartDate}"/>';

var promulgateEndDate='<c:out value="${requestScope.promulgateEndDate}"/>';

    var promulgateState='<c:out value="${requestScope.promulgateState}"/>';

弹出页面:
<script type="text/javascript">
$(document).ready(function(){
/**设置自定义发送类型,默认选中**/
$(".plgSend_one").attr("checked", true);

/**控制发送方式之间的切换,自定义发送内容的展示**/
$("input").change( function(){
//jquery对象判断,是否被选中,返回boolean值
if($(".plgSend_one").is(":checked")){
   //显示自定义发送对应的内容
             $("#send_content").show();         
      }
if($(".plgSend_two").is(":checked")){
//隐藏自定义发送对应的内容               
          $("#send_content").hide();               
      }         
});

/**重置按扭时,将切换到自定义发送内容展示**/
$(":reset").click(function(){
$("#send_content").show();
});

/**提交发布方式设置内容**/
$("#submit").click(function(){
    var templateId =$("#templateId").val();

    var promulgateType=$(':radio:checked').val();
   
    var userIds =$("#userids").val();
   
    var hour=$("#hour").val();   

    var minute=$("#minute").val();

    var strSendPeriods="";
    $(':checkbox:checked').each(function(){   
    strSendPeriods+=$(this).val()+',';   
    });

    /**
   *后面多一个,(英文逗号),这个可以检测一下再用substring去除
   *或者获取到复选框选择值后一般都要转成数组再使用的,
      *所以也可以在转成数组后,去除最后一个数组元素
   */
    if (strSendPeriods.length > 0) {
      //得到选中的checkbox值序列
      strSendPeriods=strSendPeriods.substring(0,strSendPeriods.length - 1);
    }
    var para= "&templateId=" + templateId;
   
    /**特殊控制,只有在发送方式为'自定义时间发送'时,则验证以下请求信息**/
    if($(".plgSend_one").is(":checked")){
                /**查找所有 name 属性是 sendPeriods 的 input 元素**/
                var periods_Length=$("input:checked").length;
                              
                if(periods_Length<=0){
                  alert("请选择发送周期!");
                  return false;
                }
               
if(userIds==undefined || userIds == ''){
alert("请选择短信接收人");
return false;
}

/**发送方式为-自定义发送时,累加URL值**/
para += "&promulgateType=" + promulgateType;
para += "&userids=" + userIds;
para += "&hour=" + hour;
para += "&minute=" + minute;
para +="&sendPeriods="+strSendPeriods;
    }

   var url= "mmsEdit.do?action=SendNoteInfo";   
   url=encodeURI(url);
   url=encodeURI(url);
   
   para=encodeURI(para);
   para=encodeURI(para);
   
   xmlHttp= getXMLHTTP();
var post=para;//构造要携带的数据
xmlHttp.onreadystatechange=callback;
xmlHttp.open("POST",url,false);//使用POST方法打开一个到服务器的连接,以异步方式通信
try{
xmlHttp.setrequestheader("content-length",post.length);
xmlHttp.setrequestheader("content-type","application/x-www-form-urlencoded");
}catch(e){};
xmlHttp.send(post);
});
});

/**选择短信接收人**/
    var myUserMap = [];   
function chooseUsers(){
var url = "mmsEdit.do?action=SelectUserManPage&t="+Math.random();
var users = [];
users = document.getElementById('userids').value;
users = document.getElementById('userNames').value;
var selectedUsers = window.showModalDialog(url,users,"dialogWidth=1080px;dialogHeight=542px;directories:yes;help:no;status:no;resizable:no;scrollbars:yes;center=true");
if(selectedUsers){
document.getElementById('userNames').value = selectedUsers;
document.getElementById('userids').value = selectedUsers;
}
}

/**ajax请求及响应设置**/
function getXMLHTTP(){
   var A=null;
   try{
         A=new ActiveXObject("Msxml2.XMLHTTP");
   }catch(e) {
         try{
             A=new ActiveXObject("Microsoft.XMLHTTP");
         } catch(oc) {
             A=null;
         }
   }
   if(!A && typeof XMLHttpRequest != "undefined"){
         A=new XMLHttpRequest();
   }
   return A;
}

function callback(){
if(xmlHttp.readyState == 4){//判断对象状态
       if (xmlHttp.status == 200){//信息已成功返回,开始处理信息
            var falg = xmlHttp.responseText;
            var sendNoteFlag=parseInt(falg);      
       if(sendNoteFlag>0){         
         window.returnValue =true;                  
window.close();
         return true;
       }else{
       window.returnValue =false;
       alert("提交发送短信失败");
       window.close();      
       }               
      }
    }
}

   //返回到上一页
function closeWindow(){
window.close();
}
</script>
页: [1]
查看完整版本: window.showModalDialog弹出框问题分析