父子,模式窗体间传值;兼容IE,Firefox等多个浏览器

写出的都是些Google出一堆的,但是我看了很多,大多都是复制粘贴在自己的bolg里的
汗..
拿过去用,到处都是问题
这个肯定可以用,至少我测试了 IE6-8,FileFox肯定没问题的
开始写了.刚入住javaeye 写的详细点呗
描述: add.html 有个按钮,点击弹出list.html
在list页面选择数据后,数据到达add页面进行处理

弹出页面list中涉及到搜索,分页等 都是需要防止弹出新窗口的

add页面:
  var name;
    var id;
	function butt(){	
		//获取小区id
 var str = window.showModalDialog("<s:property value='contextPath' />/sys/sys_broke_list.action",window,"dialogWidth=500,dialogHeight=600");
 if(str.length!=0)   {
          len=str.indexOf("/"); 
          name =  str.substring(0,len);
          id =  str.substring(len+1);
          document.getElementById("brokerNickname").value = name;  
      	  document.getElementById("brokerIds").value = id; 
   		 }   
    else   
    	{   
          document.getElementById("brokerNickname").value="";  
      	  document.getElementById("brokerIds").value=""; 
      	}
	     //清空前经纪人的房源
		 document.getElementById("leasenames").value="";  
     	 document.getElementById("leaseids").value="";  
     	 document.getElementById("sellnames").value="";  
     	 document.getElementById("sellids").value=""; 	
	}


<input type="hidden" name="saleKeymo.accountId" id="brokerIds" value="" />
<input type="text" name="brokerNickname" id="brokerNickname" readonly="readonly" />*
<input type="button" value="选经纪人" onclick="butt()" />

主要关注 str就是等下要返回的值 和选经纪人按钮

list页面
防止弹出新窗口,需要处理的事情
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="qiujy">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<base target="_self">

<script type="text/javascript">
//初始化提交FORM的TARGET值。    
window.attachEvent('onload', function(){    
    // alert(window.name);    
    document.getElementById("pageQueryForm").target = "dialogFrame"; 
    if(window.name=""){ //判断窗体的name,防止查询或者翻页操作时弹出新窗口    
        document.getElementById("form_1").target = "dialogFrame";
        document.getElementsByName("pageQueryForm").target = "dialogFrame";  
    }else if(window.name="dialogFrame"){//判断执行查询或翻页操作后,返回当前页面不刷新展现新数据    
        document.getElementById("form_1").target = "";
        document.getElementsByName("pageQueryForm").target = "";      
    }    
})    
  var btype=getOs();  
 function getOs()    
 {    
   if(navigator.userAgent.indexOf("MSIE")>0) {    
                 return "MSIE";       //IE浏览器  
    }  
    if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){    
                 return "Firefox";     //Firefox浏览器  
    }  
 }  
function changeFrame(){// 判断如果是执行查询或翻页操作,则改变当前窗口form的target值,防止弹出新窗口 
	if(btype=="MSIE")
    document.getElementById("form_1").target = "dialogFrame";
}


<form action="路径" onsubmit="changeFrame()">
<input type="submit" value='搜索' />

这样无论你是回车,还是去点击搜索按钮都是可以
最后 在你获得的值组装成 假设 var aaa="你组装的数据";

在你的确认按钮单击事件中
window.returnValue="你组装的数据";
window.close();
就可以了.这样就是add页面获得的str了
应该够详细了,我都觉得我写的罗嗦了.
肯定是可以用的.我所写的都是自己亲手做了的,觉得不会去copy放在这里\
有这种情况要用尽管用吧..哈哈

你可能感兴趣的:(firefox)