tengo un problema al cargar los escripts desde un ajax en una pagina que se llama modificar_permisos.jsp con el siguiente codigo
Código:
<form name="form1" method="post" action="">
<table width="282" border="0" align="center">
<tr>
<td width="276"><div id="login3"><table width="262" border="0" align="center">
<tr>
<td width="289"><div align="center">perfil</div></td>
</tr>
<%//pongo mis variables de coneccion
//conecto con mi basede datos
//hago la consulta
while(rs.next()){
int dato=rs.getInt("id_perfil");
%><tr>
<td><a style="text-decoration:underline;cursor:pointer;" onclick="getPagina('permisos.jsp?idperfil=<%=dato%>')"><%=rs.getString("perfil")%></a></td>
</tr>
<%
}%>
</table></div></td>
</tr>
<tr><td>
</td> </tr>
</table>
<div id="formulario"></div>
</form>
</body>
mi codigo ajax.js es el siguiente
Código:
var tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
/**
* Eval script fragment
* @return String
*/
String.prototype.evalScript = function()
{
return (this.match(new RegExp(tagScript, 'img')) || []).evalScript();
};
/**
* strip script fragment
* @return String
*/
String.prototype.stripScript = function()
{
return this.replace(new RegExp(tagScript, 'img'), '');
};
/**
* extract script fragment
* @return String
*/
String.prototype.extractScript = function()
{
var matchAll = new RegExp(tagScript, 'img');
return (this.match(matchAll) || []);
};
/**
* Eval scripts
* @return String
*/
Array.prototype.evalScript = function(extracted)
{
var s=this.map(function(sr){
var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
if(window.execScript){
window.execScript(tagScript);
}
else
{
window.setTimeout(sc,0);
}
});
return true;
};
/**
* Map array elements
* @param {Function} fun
* @return Function
*/
Array.prototype.map = function(fun)
{
if(typeof fun!=="function"){return false;}
var i = 0, l = this.length;
for(i=0;i<l;i++)
{
fun(this[i]);
}
return true;
};
function AJAX2(){
var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
var ajax = false;
for(var i=0 ; !ajax && i<ajaxs.length ; i++){
try{
ajax = new ActiveXObject(ajaxs[i]);
}
catch(e) {
ajax = false;
}
}
if(!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}
function getPagina(pagina){
document.getElementById("formulario").innerHTML = "<center>C A R G A N D O</center>";
var ajax = AJAX2();
if(!ajax){
document.getElementById("formulario").innerHTML = "Error: El navegador no acepta ActiveX. No se pudo cargar la pagina.";
return false;
}
ajax.open("POST",pagina,true);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
var scs=ajax.responseText.extractScript();
document.getElementById("formulario").innerHTML=ajax.responseText.stripScript();
scs.evalScript();
}
}
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(null);
}
lo ocupo para abrir la pagina permisos.jsp la cual me hace una consulta y me activa los checks de una lista de permisos dependiendo del resultado de mi consulta
el codigo de mi pagina permisos.jsp es el siguiente
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<script>
function seleccionar_todo(){
for (i=0;i<document.forms.form1.elements.length;i++)
if(document.forms.form1.elements[i].type == "checkbox")
document.forms.form1.elements[i].checked=1
}
function deseleccionar_todo(){
for (i=0;i<document.forms.form1.elements.length;i++)
if(document.forms.form1.elements[i].type == "checkbox")
document.forms.form1.elements[i].checked=0
}
</script>
<script>
function seleccionar2(subper,id2){
document.forms.form1.subper.checked = true
document.forms.form1.subper.value = id2
}
</script>
<script>
function seleccionar(tarea,id,subper,id2){
document.forms.form1.tarea.checked = true
document.forms.form1.tarea.value = id
document.forms.form1.subper.checked = true
document.forms.form1.subper.value = id2
}
</script>
<body>
<form name="form1" method="post" action="">
<table width="200" border="1" align="center">
<tr>
<td>Permisos
<label> <br>
<input type="checkbox" name="checkbox" value="" onClick="javascript:seleccionar_todo()">
seleccionar todos <br>
<input type="checkbox" name="checkbox2" value="" onClick="javascript:deseleccionar_todo()">
seleccionar ninguno</label></td>
</tr>
<tr>
<td>
<table width="200" border="1">
<tr>
<td>Catalogos</td>
</tr>
<tr>
<td>
<table width="200" border="1">
<tr>
<td>
<label>
<input name="plano" type="checkbox" id="plano" value="">
</label>Planos</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input type="checkbox" name="agregar_plano" value="" id="agregar_plano">
Agregar Datos<br>
<input type="checkbox" name="modificar_plano" value="" id="modificar_plano">
Modificar Datos<br>
<input type="checkbox" name="eliminar_plano" value="" id="eliminar_plano">
Eliminar Datos</label></td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table>
<table width="220" border="1">
<tr>
<td width="210">Herramientas</td>
</tr>
<tr>
<td><table width="211" border="1">
<tr>
<td width="201"><label>
<input name="respaldar" type="checkbox" id="respaldar" value="">
</label>
Respaldar Base de Datos </td>
</tr>
<tr>
</tr>
</table></td>
</tr>
<tr>
<td><table width="210" border="1">
<tr>
<td width="200"><label>
<input name="restaurar" type="checkbox" id="restaurar" value="">
</label>
Restaurar Base de Datos </td>
</tr>
<tr>
</tr>
</table></td>
</tr>
</table>
<table width="218" border="1">
<tr>
<td width="214">Produccion</td>
</tr>
<tr>
<td><table width="208" border="1">
<tr>
<td width="198"><label>
<input type="checkbox" name="nueva" value="" id="nueva">
</label>
nueva</td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="210" border="1">
<tr>
<td width="200"><label>
<input type="checkbox" name="continuar" value="">
</label>
Continuar</td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="210" border="1">
<tr>
<td width="200"><label>
<input type="checkbox" name="paro" value="">
</label>
Paro</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input type="checkbox" name="reportar_causa" value="">
</label>Reportar Causa </td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
<table width="200" border="1">
<tr>
<td>Usuarios Y Perfiles </td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input name="usuarios" type="checkbox" id="usuarios" value="">
</label>
Usuarios</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input type="checkbox" name="registrar_usuario" value="">Registrar Usuario<br>
<input type="checkbox" name="modificar_usuario" value="">Modificar Usuario<br>
<input type="checkbox" name="eliminar_usuario" value="">Eliminar Usuario</label></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input name="perfiles" type="checkbox" id="perfiles" value="">
</label>Perfiles</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input type="checkbox" name="agregar_perfil" value="">Agregar Perfil<br>
<input type="checkbox" name="modificar_perfil" value="">Modificar Perfil<br>
<input type="checkbox" name="eliminar_perfil" value="">Eliminar Perfil</label></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label>
<input name="permisos" type="checkbox" id="permisos" value="">
</label>Permisos</td>
</tr>
<tr>
<td><table width="200" border="1">
<tr>
<td><label><input type="checkbox" name="modificar_permisos" value="">Modificar Permisos </label></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<%
String tarea=null;
int dato=Integer.parseInt(request.getParameter("idperfil"));;
<%//pongo mis variables de coneccion
//conecto con mi basede datos
//hago la consulta
while(rs.next()){
<%
//conecto con mi basede datos
//hago la consulta
while(rs2.next()){
//conecto con mi basede datos
//hago la consulta
while(rs3.next()){
if(rs3.getString("tarea").equals("null")){
tarea="nueva";
%>
<script>
seleccionar2(<%=rs2.getString("subpermiso")%>,<%=rs2.getInt("subpermiso.id_subpermiso")%>);
</script>
<%
}
else{
tarea=rs3.getString("tarea");
%>
<script>
seleccionar(<%=tarea%>,<%=rs3.getInt("tareas.id_tarea")%>,<%=rs2.getString("subpermiso")%>,<%=rs2.getInt("subpermiso.id_subpermiso")%>);
</script>
<%
}}}}//cierro conecciones%>
</body>
</html>
el problema esta en que cuando mando llamar permisos.jsp me manda un error de tiempo de ejecucion en la linea
document.getElementById("formulario").innerHTML=aj ax.responseText.stripScript();
de mi ajax.js
no se ejecutan que es lo que estoy haciendo mal o como puedo corregirlo si alguien me puede ayudar se lo agradecere.
de antemano muchas gracias