首页 > Dhtmlx > 解决dhtmlx中第四级页面js不执行的问题

解决dhtmlx中第四级页面js不执行的问题

关于在第四级页运行script的方法:

问题背景:

因在第四级页面是一个div,而在window控件在用attachURI(“uri”)对div进行抓取时,
它会自动的忽略script节点;只会取出html节点,所以在div中的script并没有得到执行;
所以,可以把在执行的script写入到一个div中,再对用appendObject(‘divid’)把div关联到window中;

解决方法:


可以如下设置:
1、在要进行跳转的上级页面,写一个div,并把要执行的第回级页面的script写入到这个div中的,并隐藏div;

	<div id="mydivs" style="width: 100%;height: 100%;
                      border: 1px solid red;display: none;">
		<center>
		<input type="button" value="run script test" 
                        onclick="doClick(this);"/>
		</center><hr/>
		<script type="text/javascript">
			function doClick(node)
			{
				if(node.value=='run script test')
				{
					node.value='RUN SCRIPT TEST';
					node.style.color = "red";
				}else
				{
					node.value="run script test";
					node.style.color = "";
				}
			}
		</script>
	</div>
	

2、建立window;

	try
		{
			var argWins = new dhtmlXWindows(); 
			win = argWins.createWindow(_title, 100, 100, 450, 250); 
			win.setText(_title);
			
			win.appendObject('mydivs');
			
	 	}catch(e)
	 	{
	 		alert(e);
	 	}
	

代码实例如下:

	<%@ page contentType="text/html; charset=utf-8" language="java" 
		import="java.sql.*" errorPage="" %>
	<%@taglib prefix="s" uri="/struts-tags" %>
	<%
		String path = request.getContextPath();
		String basePath = request.getScheme() + "://" + request.getServerName()
			+ ":" + request.getServerPort() + path + "/";
	%>
	<body>
	<a href="javascript:void(0);" onClick="dialog('addUser');return false;">
		新增用户
	</a> 
	<form action="" method="get" name="data" id="data" >
		<div id="gridbox" style="width: 100%;height: 50%;"></div>
	</form>
	<div id="mydivs" style="width: 100%;height: 100%;border: 1px solid red;display: none;">
		<center>
			<input type="button" value="run script test" onclick="doClick(this);"/>
		</center><hr/>
		<s:form  id="user" method="get" name="data" action="user!saveUser.action">
		<table width="100%" align="center">
		  <tr>
			<td style="width: 100px;text-align: right">用户名:</td>
			<td>
				<input type="text" id="name" name="userForm.name" 
				class="required min-length-6"  title="请输入用户名,最少六位" />
			</td>
		  </tr>
		  <tr>
			<td style="width: 100px;text-align: right">姓名:</td>
			<td>
				<input type="text" name="userForm.chname" 
				class="required validate-alpha min-length-6" 
				id="chName" title="请输入姓名,只能是字母,最少6位"/>
			</td>
		  </tr>
		  <tr>
			<td style="width: 100px;text-align: right">密码:</td>
			<td>
			  <input type="password" name="userForm.pwd" 
			  class="required validate-alphanum min-length-6 max-length-15" 
			  id="pwd" title="请输入密码,只能是字母与数字组合,最少六位,最多十五位"/>
			</td>
		  </tr>
		  <tr>
		   <td></td>
			<td >
			  <input  type="button" value="提交" onclick="resp('1')" />&nbsp;
			  <input type="button" name="Submit2" value="关闭" onclick="closeWin('1');"/>
			</td>
		  </tr>
		</table>
		</s:form>
		<script type="text/javascript">
			function doClick(node)
			{
				if(node.value=='run script test')
				{
					node.value='RUN SCRIPT TEST';
					node.style.color = "red";
				}else
				{
					node.value="run script test";
					node.style.color = "";
				}
			}		
			//提交操作的处理
			resp=function(_id){
					var jsValidate = new Validation('user', {stopOnFirst :true , 
							immediate : true,useTitles:true});
					var result = jsValidate.validate();
					if(result){
					$('user').request({
						onComplete: function(data){
							if(data.status==200)
							{
								alert(data.responseText+"\t"+"成功!!");
								closeWin(_id);
							}else
							{
								alert(data.status+"\t请求失败,请重新处理---");
							}
						}
					});
				}
			}
		
			//关闭按钮的操作
			closeWin=function(_id){
			  win.closeWindow(_id);	 	
			}
		</script>
	</div>
	</body>
	<script>	
	   //列表数据展示
		try{
			var tmpArg = new XGridArgs(700,200,
			"用户名,姓名,密码,操作",
			"ro,ro,ro,ro",
			"left,left,left,right",
			"100,100,100,200",false);
			var grid = XFactory.Create(GComponents.XGrid,tmpArg);
			grid.bindDIV("gridbox");
			grid.loadXML("../user!list.action");
		}catch(ex){
			alert(ex);
		}
		//打开窗口的处理包含提交和直接关闭
		var win=null;
		 dialog=function(_title){
			try
			{
				var argWins = new dhtmlXWindows(); 
				win = argWins.createWindow(_title, 100, 100, 450, 250); 
				win.setText(_title);
				
				win.appendObject('mydivs');
				
			}catch(e)
			{
				alert(e);
			}
		}
			
		//其他页面函数放置区
		changeStatus=function(id,afterid)
		{
			// alert("changeStatus");
			var qiyong=document.getElementById(id+'qiyong'+afterid);
			var jinyong=document.getElementById(id+'jinyong'+afterid);
			if(qiyong.style.display=="none")
			{
				jinyong.style.display="none";
				//do something  			
				qiyong.style.display="";
				alert("禁用成功!");
			}else{
				jinyong.style.display="";
				//do something 		
				qiyong.style.display="none";
				alert("启用成功!");							
			}
		}
	</script>
	

除非注明,文章为IT热血青年原创,欢迎转载!转载请注明本文地址,谢谢。
本文地址:http://blog.itblood.com/solve-js-execution-dhtmlx-page.html

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.