estoy intentando ejecutar codigo javascript. he usado codigo que encontre en este foro, pero me lanza 2 errores cuando uso IE. esto es lo que tengo
en esta seccion me lanza error en la linea 1 y 37
prueba.js
Código javascript:
Ver original
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); // LINEA 37 } 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; };
prueba.html
Código html:
Ver original
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script type="text/javascript"> function creaAjax(){ 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]); // Internet Explorer } catch(e) { ajax = false; } } if(!ajax && typeof XMLHttpRequest!='undefined') { ajax = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari } return ajax; } function Evento() { var elemento = document.getElementById('hr'); var nomevento = "click"; var funcion = function() { Muestra("contenedor"); } if (elemento.attachEvent) { var f=function(){ funcion.call(elemento,window.event); } elemento.attachEvent('on'+nomevento,f); return true; } else if (elemento.addEventListener) { elemento.addEventListener(nomevento,funcion,false); return true; } else return false; } function Muestra(lugar) { var ajax=creaAjax(); var objetosel = document.getElementById(lugar); ajax.open('GET','pruebaajax.asp',true); ajax.onreadystatechange = function() { if (ajax==null){ alert ("Tu navegador web no soporta AJAX!"); return; } if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) { objetosel.innerHTML = "Cargando ..."; } else if (ajax.readyState==4){ if(ajax.status==200){ var scs=ajax.responseText.extractScript(); objetosel.innerHTML = ajax.responseText.stripScript(); scs.evalScript(); } else if (ajax.status==404) { objetosel.innerHTML = "La dirección no existe"; } else { objetosel.innerHTML = "Se ha producido un error.<br />Lo mas probable es que no hayas seleccionad una Fecha"; } } } ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); ajax.send(null); return } window.onload = Evento; </script> </head> <body> <input type="button" name="hr" id="hr" value="Ver"> </body> </html>
pruebaajax.asp
Código asp:
Ver original
<% For i = 1 to 5 Response.Write "<a href=""#"">" & i & "</a>" Next 'i %> <script type="text/javascript"> var ref = document.getElementById("contenedor").getElementsByTagName("A"); for (var i = 0; i < ref.length; i++) { Valor(ref[i], 'click', function() {MuestraValor(this.id);}) } </script>
¿que estoy haciendo mal? el codigo lo he simplificado para una mejor compresion
gracias