Tengo mucho que no escribo en los foros, pero volví porque necesito una ayudita con AJAX. Estoy desarrollando una WEB y me esta presentando este inconveniente.
Cuando llamo una funcion en Ajax.js, este se me ejecuta perfectamente, le mostrare una partesita del Ajax.js
Cita:
Donde getXMLHTTPRequest() esta dentro tambien del ajax.js y es de esta manera esa funcionvar myRequest = getXMLHTTPRequest();
function abrirScript(url){
myRequest.open("GET", url, true);
myRequest.onreadystatechange = function(){
if(myRequest.readyState == 4) {
if(myRequest.status == 200) {
document.getElementById('script').innerHTML = '<div style="overflow:visible; position:absolute; width:100%; height:100%; top:0; left:0;" align="center">'+myRequest.responseText+'</div>';
} else {
alert("An error has occurred: "+ myRequest.statusText);
}
}
}
myRequest.send(null);
}
function cerrarAdd(qtype){
document.getElementById('script').innerHTML='';
location.href=".?qtype="+qtype+"&close=yes";
}
function abrirScript(url){
myRequest.open("GET", url, true);
myRequest.onreadystatechange = function(){
if(myRequest.readyState == 4) {
if(myRequest.status == 200) {
document.getElementById('script').innerHTML = '<div style="overflow:visible; position:absolute; width:100%; height:100%; top:0; left:0;" align="center">'+myRequest.responseText+'</div>';
} else {
alert("An error has occurred: "+ myRequest.statusText);
}
}
}
myRequest.send(null);
}
function cerrarAdd(qtype){
document.getElementById('script').innerHTML='';
location.href=".?qtype="+qtype+"&close=yes";
}
Cita:
Esto esta supuesto a funcionarme muy bien y lo hace muy bien pero aqui viene mi pregunta.function getXMLHTTPRequest()
{
var request = false;
try
{
request = new XMLHttpRequest(); /* e.g. Firefox */
}
catch(err1)
{
try
{
vrequest = new ActiveXObject("Msxml2.XMLHTTP");
/* some versions IE */
}
catch(err2)
{
try
{
request = new ActiveXObject("Microsoft.XMLHTTP");
/* some versions IE */
}
catch(err3)
{
request = false;
}
}
}
return request;
}
{
var request = false;
try
{
request = new XMLHttpRequest(); /* e.g. Firefox */
}
catch(err1)
{
try
{
vrequest = new ActiveXObject("Msxml2.XMLHTTP");
/* some versions IE */
}
catch(err2)
{
try
{
request = new ActiveXObject("Microsoft.XMLHTTP");
/* some versions IE */
}
catch(err3)
{
request = false;
}
}
}
return request;
}
Cuando ejecuto la funcion abrirScript('url');, esta se me ejecuta sin ningun problema y me pone mi ventanita encima de todo muy bien, en esta ventanita tengo un boton llmado CERRAR el cual cuando le dan click ejecuta la funcion cerrarAdd y tambien funciona perfectamente.
El inconveniente esta cuando vuelvo a llamar la funcion abrirScript('url'), el Internet Explorer 8 me arroja el siguiente error:
Cita:
Pero si sigo navegando en la web dentro de mi misma web, hay veces que vuelve a funcionar y no se el porque no funciona.Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
Timestamp: Thu, 25 Mar 2010 20:45:35 UTC
Message: 'document.getElementById(...)' is null or not an object
Line: 41
Char: 3
Code: 0
URI: http://xxxxx/xxxxx/scripts/ajax.js
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
Timestamp: Thu, 25 Mar 2010 20:45:35 UTC
Message: 'document.getElementById(...)' is null or not an object
Line: 41
Char: 3
Code: 0
URI: http://xxxxx/xxxxx/scripts/ajax.js
Como nota adicional la Linea 41 esta dentro de la funcion
Cita:
Espero haber sido lo bastante claro, este error no me pasa ni en Mozilla ni en Chrome, pero necesito que funcione perfecto en el Internet Explorer....
40. if(myRequest.status == 200) {
41. document.getElementById('script').innerHTML = '<div style="overflow:visible; position:absolute; width:100%; height:100%; top:0; left:0;" align="center">'+myRequest.responseText+'</div>';
42. } else {
....
40. if(myRequest.status == 200) {
41. document.getElementById('script').innerHTML = '<div style="overflow:visible; position:absolute; width:100%; height:100%; top:0; left:0;" align="center">'+myRequest.responseText+'</div>';
42. } else {
....
Gracias de antemano
NOTA: Tengo un <div id='script'></div> en la pagina que utilizo estas funciones.