Foros del Web » Programando para Internet » Javascript » Frameworks JS »

coger texto de una url ycambiarlo en mi web...

Estas en el tema de coger texto de una url ycambiarlo en mi web... en el foro de Frameworks JS en Foros del Web. Estoy intentando hacer que se sustituya la url de un <img src='url'> en el cliente, y para ello llamo a una web alojada en mi ...
  #1 (permalink)  
Antiguo 01/10/2006, 13:37
 
Fecha de Ingreso: diciembre-2003
Mensajes: 222
Antigüedad: 21 años
Puntos: 2
coger texto de una url ycambiarlo en mi web...

Estoy intentando hacer que se sustituya la url de un <img src='url'> en el cliente, y para ello llamo a una web alojada en mi server k imprime la url, y la tomo con este script, pero no se como hacer, para que la saque en una imagen... no tengo ni idea de ajax.... en mi server la imprimo por php, y llego a mostrar la ulr como texto metiendolo en un span en el cliente, pero sustituirlo en el img, no....

el script es el siguiente:

Código:
 <script>
function clientSideInclude(id, url) {
  var req = false;
  // For Safari, Firefox, and other non-MS browsers
  if (window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
    } catch (e) {
      req = false;
    }
  } else if (window.ActiveXObject) {
    // For Internet Explorer on Windows
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        req = false;
      }
    }
  }
 var element = document.getElementById(id);
 if (!element) {
  alert("Bad id " + id + 
   "passed to clientSideInclude." +
   "You need a div or span element " +
   "with this id in your page.");
  return;
 }
  if (req) {
    // Synchronous request, wait till we have it all
    req.open('GET', url, false);
    req.send(null);
    element.innerHTML = req.responseText;
  } else {
    element.innerHTML =
   "Sorry, your browser does not support " +
      "XMLHTTPRequest objects. This page requires " +
      "Internet Explorer 5 or better for Windows, " +
      "or Firefox for any system, or Safari. Other " +
      "compatible browsers may also exist.";
  }
}
</script>
y lo llamo haciendo un onLoad="clientSideInclude('includeone', 'http://url_demiserver-queimprime_el_enlace.php') en el body... y me lo imprime dnd ponga
<span id="includeone"></span>


y me lo muestr en pantalla... pero no logro k sustituya el src de la imagen.


Muchas gracias a tod@s

Última edición por Paranoid; 01/10/2006 a las 13:45
  #2 (permalink)  
Antiguo 02/10/2006, 15:00
Avatar de ikhuerta  
Fecha de Ingreso: octubre-2006
Mensajes: 104
Antigüedad: 18 años, 2 meses
Puntos: 0
en el codigo que pones cambia:

Código:
element.innerHTML = req.responseText;
por

Código:
element.src = req.responseText;
Y luego a la imagen en cuestión le metes id...

Código:
<img id="mi_imagen_cambiante" src=...
la llamada, claro, se haría así

Código:
clientSideInclude('mi_imagen_cambiante', "url_demiserver-queimprime_el_enlace.php')
  #3 (permalink)  
Antiguo 04/10/2006, 13:52
 
Fecha de Ingreso: diciembre-2003
Mensajes: 222
Antigüedad: 21 años
Puntos: 2
sigo sin lograrlo....

Hola, al final he optado por otra opcion parecida... pero sigue sin salirme.... El tema se ha complicado, ahora lo que tengo que hacer, es que le paso la url de la imagen, y una url de destino. Para que la imagen sea un link, a otra pagina...

esto es lo que hago:

Código:
<script language="javascript" type="text/javascript">
<!--
function oAjax(){
    try{
        oAjax = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e){
        try{
            oAjax= new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(E){
            oAjax= false;
        }
    }
    if (!oAjax && typeof XMLHttpRequest!='undefined') {
        oAjax = new XMLHttpRequest();
    }
    return oAjax
}
//colocar en el tag body
// onload="fSustituirAjax();"
function fSustituirAjax(){
    _oAjax=oAjax()
    //id del cliente
    _values_send="id=1"
    //ruta y pagina que devolvera las variables
    _URL_="http://127.0.0.1/xresultados-final/a...ina_banner.php?"
    _oAjax.open("GET",_URL_+"&"+_values_send,true);
    _oAjax.onreadystatechange=function(){
        if (_oAjax.readyState==4){
            if(_oAjax.status==200){
                var sValorDevuelto = _oAjax.responseText;
                //aValores[0] debe contener la url, el resto seran las palabras a reemplazar
                var aValores = new Array();
                aValores = sValorDevuelto.split(" ");
                alert(aValores[0])
                var oBody = document.getElementsByTagName("body");              
                var sNuevoTag2 = '<span id="id_test"></span>';
                var sNuevoTag = '<a href="' + aValores[0] + '"><img src="' + aValores[1] + '"></a>';
                oBody[0].innerHTML = oBody[0].innerHTML.replace(sNuevoTag, sNuevoTag);
            }
        }
    }
    _oAjax.send(null);
}
</script>
<body onload="fSustituirAjax(true);">

<span id="id_test"></span>

Lo que intento con todo esto, es que me remplace el sNuevoTag por sNuevoTag2 que hay en el body... pero no lo consigo.... lo siento no tengo ni idea de AJAX... algun angel para salvarme???


Gr@ci@s
  #4 (permalink)  
Antiguo 04/10/2006, 16:33
Avatar de ikhuerta  
Fecha de Ingreso: octubre-2006
Mensajes: 104
Antigüedad: 18 años, 2 meses
Puntos: 0
Bueno primero decirte que el sistema que usas no es muy normal... creo que es la primera vez que veo un replace en un innerHTML para cambiar etiquetas.

Lo suyo seria que metieses el span dentro de un div y sustituyeras su contenido... pero bueno si quieres hacerlo asi supongo que también puedes.

Como preguntas supongo que es que el codigo que pones no te funciona... vaya pues debería (aunque tampoco he probado nunca un innerHTML del body de una pagina :P

Bueno lo que si que veo es que intentas cambiar sNuevoTag por sNuevoTag en vez de sNuevoTag2 por sNuevoTag

prueba a no meter tantos pasos... innerHTML tu estas suponiedno que como para ti es cadena podrás aplicarle el metodo replace como si nada... no estoy yo tan seguro.

ah! y para referenciarte al body puedes hacerlo directamente con document.body no hace falta que lo busques por el tag

Yo mejor probaria lago como:

Código:
contenido=String(document.body.innerHTML);
document.body.innerHTML=contenido.replace(sNuevoTag2, sNuevoTag);
  #5 (permalink)  
Antiguo 04/10/2006, 23:42
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 10 meses
Puntos: 3
La verdad yo tampoco habia visto ese"replace", entonces no se si es correcto o no...
Pero lo que podrias hacer, si lo que quieres es remplazar, usar Ajax.Replacer.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:08.