Muy buenas y muchas gracias por vuestro tiempo. Os cuento un problema que se me ha atragantado.
Estoy haciendo mis primeras cosillas con ajax y todo iba muy bien hasta que me he topado con el siguiente caso. Desde mi página "p2.asp" necesito acceder a una variable javascript la cual se declara en "p3.asp". Es decir desde p2.asp hago una llamada asíncrona a p3.asp. Intento consultar el contenido de la variable que se debería haber declarado y me dice que no está definida. Os pongo el código de las dos páginas a ver si alguien me puede ayudar a solucionarlo.
Un saludo a todos.
p2.asp
<html>
<head>
<script language="javascript" type="text/javascript">
var enProceso = false; // lo usamos para ver si hay un proceso asíncrono activo
var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest
function getHTTPObject()
{
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) { xmlhttp = false; }
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) { xmlhttp = false; }
}
return xmlhttp;
}
function llamadaajax()
{
if (!enProceso && http)
{
var url = "p3.asp";
http.open("GET", url, true);
http.onreadystatechange = controlHttpRespuesta;
enProceso = true;
http.send(null);
}
}
function controlHttpRespuesta()
{
if (http.readyState == 4) {
if (http.status == 200) {
if (http.responseText.indexOf("invalid") == -1) {
document.getElementById("midiv").innerHTML =http.responseText;
enProceso = false;
}
}
}
}
function consultavalor()
{
alert(variablejs);
}
</script>
<title>Ajax: consulta variable js</title>
</head>
<body>
<a href="javascript:llamadaajax()">llamada asíncrona</a><br>
<a href="javascript:consultavalor()">consultar valor de variable</a>
<div id="midiv" ></div>
</body>
<html>
p3.asp
<%response.write "<script type=""text/javascript"">var variablejs=""adios""</script>"%>