hola
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 originalvar 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"> <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;
<input type="button" name="hr" id="hr" value="Ver">
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