⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menutool_change.js

📁 一套完整的工商12315的源程序jsp部分在12315里,后台JAVA部分在gs12315src里,没有打包数据库.
💻 JS
字号:
 /*
************函数的使用说明
放到页面<head>中间
<SCRIPT language=javascript src="<%=request.getContextPath()%>/include/menuTool.js"></SCRIPT>

放到显示使用位置
<A onmouseover=showmenu(1) onmouseout=delayhidemenu() href="#"><img border="0" src="<%=request.getContextPath()%>/images/mouse-rq.gif" width="16" height="14"></a>

注意在使用时候的表格ID

页面调用函数一般放到页面的最后
var insertContext=new Array()
	function showmenu(modeLayer){
		//初始化数据
		//插入表格内容


		insertContext[0]="<input type=\"checkbox\" value=\"ON\" name=C1></input>
                          <input type=\"hidden\" name=\"sub01_03_02_field001\" value=\"<%=SN%>\">
                          <input type=\"hidden\" name=\"sub01_03_02_field002\" value=\"sub01_03_02\">
                          <input type=\"hidden\" name=\"sub01_03_02_field003\" value=\"\">";
		insertContext[1]="<DIV onclick=\"getRowIndex();\"><input name=\"sub01_03_02_field004\" type=\"text\" size=\"7\" value=\"\"></DIV>";
		insertContext[2]="<DIV onclick=\"getRowIndex();\"><input type=\"text\" name=\"sub01_03_02_field005\" size=\"6\" value=\"\"></DIV>";
		insertContext[3]="<DIV onclick=\"getRowIndex();\"><input type=\"text\" name=\"sub01_03_02_field006\" size=\"18\" value=\"\"></DIV>";
		insertContext[4]="<DIV onclick=\"getRowIndex();\"><input name=\"sub01_02_field007\" type=\"text\" size=\"24\" value=\"\"></DIV>";
		insertContext[5]="<DIV onclick=\"getRowIndex();\"><input type=\"text\" name=\"sub01_03_02_field008\" size=\"11\" value=\"\"></DIV>";
		//显示菜单内容
		var linkset=new Array()

		//一般情况
		if(modeLayer=="1"){
			linkset[0]="<div class='menuitems'><a href='javascript:insertTable(\"stockman\",insertContext,document.all.sub01_03_02_field003)'>添&nbsp;加</a></div>"
			linkset[0]+="<div class='menuitems'><a href='javascript:deleteRow(\"stockman\",3)'>删&nbsp;除</a></div>"
		}
		showMenuLayer(event,linkset[0]);
	}
函数的使用说明:
	showmenu函数的参数为1,就是显示的菜单。
	insertContext数组就是,要添加表格行变量的列项目。
	菜单中的说明:
		添加:linkset[0]中的insertTable(\"stockman\",insertContext,document.all.sub01_03_02_field003)中的stockman为表格的ID,insertContext为列的变量列表,document.all.sub01_03_02_field003是隐藏变量程序将对他进行初始化自动加1。
		删除:linkset[0]中的deleteRow(\"stockman\",3) 中的stockman为表格的ID,3是表格所在变量第一行的行号。


*/
////层的显示模块 start

		var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
		var ns6=document.getElementById&&!document.all
		var ns4=document.layers

		function showMenuLayer(e,which){

		if (!document.all&&!document.getElementById&&!document.layers)
		return

		clearhidemenu()

		menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
		menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj

		if (ie4||ns6)
		menuobj.innerHTML=which
		else{
		menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=80 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
		menuobj.document.close()
		}

		menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
		menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
		eventX=ie4? event.clientX : ns6? e.clientX : e.x
		eventY=ie4? event.clientY : ns6? e.clientY : e.y

		//Find out how close the mouse is to the corner of the window
		var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
		var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY

		//if the horizontal distance isn't enough to accomodate the width of the context menu
		if (rightedge<menuobj.contentwidth)
		//move the horizontal position of the menu to the left by it's width
		menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
		else
		//position the horizontal position of the menu where the mouse was clicked
		menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX

		//same concept with the vertical position
		if (bottomedge<menuobj.contentheight)
		menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
		else
		menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
		menuobj.thestyle.visibility="visible"
		return false
		}

		function contains_ns6(a, b) {
		//Determines if 1 element in contained in another- by Brainjar.com
		while (b.parentNode)
		if ((b = b.parentNode) == a)
		return true;
		return false;
		}

		function hidemenu(){
		if (window.menuobj)
		menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
		}

		function dynamichide(e){
		if (ie4&&!menuobj.contains(e.toElement))
		hidemenu()
		else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
		hidemenu()
		}

		function delayhidemenu(){
		if (ie4||ns6||ns4)
		delayhide=setTimeout("hidemenu()",500)
		}

		function clearhidemenu(){
		if (window.delayhide)
		clearTimeout(delayhide)
		}

		function highlightmenu(e,state){
		if (document.all)
		source_el=event.srcElement
		else if (document.getElementById)
		source_el=e.target
		if (source_el.className=="menuitems"){
		source_el.id=(state=="on")? "mouseoverstyle" : ""
		}
		else{
		while(source_el.id!="popmenu"){
		source_el=document.getElementById? source_el.parentNode : source_el.parentElement
		if (source_el.className=="menuitems"){
		source_el.id=(state=="on")? "mouseoverstyle" : ""
		}
		}
		}
		}

		if (ie4||ns6)
		document.onclick=hidemenu

////层的显示模块 end

//table editor start

	//tableID  table's id
	//insertContext 需要添加的行的innerHTML
	//recordNum 用于存放记录号的隐藏输入域对象(一般为field003)
	//maxNum 	数据库中当前表的最大记录号值(包括所有变更的)
    //nCell     recordNum所在列(TD)的顺序号,从0开始计算
    //nOrder    recordNum在所在列(TD)中排列的顺序号,从0开始计算,与children

    //checkCell //check所在列(TD)的顺序号,从0开始计算//...2004-03-29 add
    //checkOrder//check在所在列(TD)中排列的顺序号,从0开始计算,与children//...2004-03-29 add

    //function insertTable(tableID,insertContext,recordNum,maxNum,nCell,nOrder)	{//...2004-03-29 comment
	function insertTable(tableID,insertContext,recordNum,maxNum,nCell,nOrder,checkCell,checkOrder)	{//...2004-03-29 add
		var otd,i;
		var rowT=document.all(tableID);
		//插入行
        //所有行均在最后加入
		var otr = rowT.insertRow(-1);

		//插入列
		for(i=0;i<insertContext.length;i++){
			otd = otr.insertCell();
			otd.className="formTd01";
			otd.innerHTML=insertContext[i];
            //alert(otd.innerHTML);
		}

        //设置插入行的记录号(recordNum)的值
        var maxRecordNumber=maxNum;
    	if(recordNum){

			if(recordNum && recordNum.length){
				for(i=0;i<recordNum.length;i++){

					if ((recordNum[i].value != "") && (parseInt(Math.abs(recordNum[i].value)) > maxRecordNumber)){
		                 maxRecordNumber = parseInt(Math.abs(recordNum[i].value));
					}

				}//for
			}else{
                if (recordNum){

					if (parseInt(recordNum.value) > maxRecordNumber ){
		                 maxRecordNumber =parseInt(recordNum.value);
					}

                }else{
                    maxRecordNumber=0;
                }
			}//else
		}//if
        maxRecordNumber ++;
        //alert("name" + otr.cells[nCell].children[nOrder].name);
      	otr.cells[nCell].children[nOrder].value = (maxRecordNumber<10?"0"+maxRecordNumber:maxRecordNumber);
        otr.cells[checkCell].children[checkOrder].value = (maxRecordNumber<10?"0"+maxRecordNumber:maxRecordNumber);//...2004-03-26 add
	    //alert("maxRecordNumber:" + maxRecordNumber);
		//alert("insertTD:"+otr.innerHTML);
   }

    //用于变更(子表操作)
    //nCell 数据操作标志field249所在列(TD)的顺序号,从0开始计算
    //nOrder 数据操作标志field249在所在列(TD)中排列的顺序号,从0开始计算,与children

    //delCells //check所在列(TD)的顺序号,从0开始计算//...2004-03-29 add
    //delChildren//check在所在列(TD)中排列的顺序号,从0开始计算,与children//...2004-03-29 add

    //function changeDeleteRow(stockman,stockmanStartNum,nCell,nOrder,delCells,delChildren) //删除选中的表行,tablename是表格的id//...2004-03-29 comment
	function changeDeleteRow(stockman,stockmanStartNum,nCell,nOrder,delCells,delChildren) //删除选中的表行,tablename是表格的id//...2004-03-29 add
	  {
	     var rowT=document.all(stockman);
	     for(i=stockmanStartNum;i<rowT.rows.length;i++) {
           var sFlag = "";
			if(rowT.rows[i].cells[0].children[0].checked == true){
                //alert("children:" + rowT.rows[i].cells[6].children.length);
                if (rowT.rows[i].cells[nCell].children[nOrder]){
					//alert("rowT.rows[i].cells[nCell].children[nOrder].name:::"+rowT.rows[i].cells[nCell].children[nOrder].name);
  					sFlag = rowT.rows[i].cells[nCell].children[nOrder].value;
                }
	            //alert(stockmanStartNum+"  "+i+"  "+rowT.rows[i].innerHTML);
                //alert("sFlag's value:"+sFlag);
                if (sFlag == "old"){
                    //alert("hidden");
					rowT.rows[i].style.display="none";
                    //alert("rowT.rows[i].cells[6].children[0].name"+rowT.rows[i].cells[4].children[0].name);
                    //alert("rowT.rows[i].cells[6].children[1].name"+rowT.rows[i].cells[4].children[1].name);
                    //alert("rowT.rows[i].cells[6].children[2].name"+rowT.rows[i].cells[4].children[2].name);
                    //alert("rowT.rows[i].cells[6].children[3].name"+rowT.rows[i].cells[4].children[3].name);
                    rowT.rows[i].cells[delCells].children[delChildren].value = "del"//...2004-03-29 add

                }else{
                    //alert("delete");
					rowT.deleteRow(i);
                    i = i-1
				}
	        }
	      }
	  }
    //用于变更(子表操作)
    //显示被删除且被隐藏的TD
	function showDeleteRow(stockman,stockmanStartNum)
	  {
	     var rowT=document.all(stockman);
	     for(i=stockmanStartNum;i<rowT.rows.length;i++) {
			rowT.rows[i].style.display="";
	      }
	  }
 //table editor end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -