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

usar js en una pagina cargada en un div

Estas en el tema de usar js en una pagina cargada en un div en el foro de Frameworks JS en Foros del Web. Tengo una pagina index.php, en la cual cargo paginas en un DIV llamado "cont" de la siguiente forma: En mi pagina index.php tengo este script ...
  #1 (permalink)  
Antiguo 29/06/2010, 20:02
Avatar de Restart  
Fecha de Ingreso: marzo-2009
Mensajes: 84
Antigüedad: 15 años, 1 mes
Puntos: 0
usar js en una pagina cargada en un div

Tengo una pagina index.php, en la cual cargo paginas en un DIV llamado "cont" de la siguiente forma:

En mi pagina index.php tengo este script

Código:
<script type="text/javascript">
function cargarobjeto(objeto, id)
{
if (objeto.readyState == 4) //si se ha cargado completamente
document.getElementById(id).innerHTML=objeto.responseText
else //en caso contrario, mostramos un gif simulando una precarga
document.getElementById(id).innerHTML='<img src="./loader.gif" alt="cargando">'
}
</script>
Y para cargar paginas en el DIV "cont" uso un link, por ejemplo:

Código:
<a href="javascript:Carga('ingresar.php','cont');">Ingreso de nuevos clientes</a>
Todo funciona perfecto, pero actualmente una de las paginas que cargo en el DIV tiene un formulario, en el cual quiero validar con JAVASCRIPT lo que se ingrese en los campos de texto, pero no me funciona javascript en las paginas que cargo en el DIV.


Alguna ayuda?
  #2 (permalink)  
Antiguo 30/06/2010, 07:26
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: usar js en una pagina cargada en un div

Hola

Lo mas sencillo sería cargar en index.php ese js. En caso que te veas forzado a traer el js en la respuesta tendrás que usar este código y cargarlos en index.pho como archivo externo

Código Javascript:
Ver original
  1. var tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
  2. /**
  3. * Eval script fragment
  4. * @return String
  5. */
  6. String.prototype.evalScript = function()
  7. {
  8.         return (this.match(new RegExp(tagScript, 'img')) || []).evalScript();
  9. };
  10. /**
  11. * strip script fragment
  12. * @return String
  13. */
  14. String.prototype.stripScript = function()
  15. {
  16.         return this.replace(new RegExp(tagScript, 'img'), '');
  17. };
  18. /**
  19. * extract script fragment
  20. * @return String
  21. */
  22. String.prototype.extractScript = function()
  23. {
  24.         var matchAll = new RegExp(tagScript, 'img');
  25.         return (this.match(matchAll) || []);
  26. };
  27. /**
  28. * Eval scripts
  29. * @return String
  30. */
  31. Array.prototype.evalScript = function(extracted)
  32. {
  33.                 var s=this.map(function(sr){
  34.                 var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
  35.                 if(window.execScript){
  36.                 window.execScript(sc);
  37.                 }
  38.                 else
  39.                 {
  40.                  window.setTimeout(sc,0);
  41.                 }
  42.                 });
  43.                 return true;
  44. };
  45. /**
  46. * Map array elements
  47. * @param {Function} fun
  48. * @return Function
  49. */
  50. Array.prototype.map = function(fun)
  51. {
  52.         if(typeof fun!=="function"){return false;}
  53.         var i = 0, l = this.length;
  54.         for(i=0;i<l;i++)
  55.         {
  56.                 fun(this[i]);
  57.         }
  58.         return true;
  59. };

y ahora la respuesta la recibes así

Código Javascript:
Ver original
  1. var scs=ajax.responseText.extractScript();
  2. document.getElementById(id).innerHTML = ajax.responseText.stripScript();
  3. scs.evalScript();

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 30/06/2010, 09:23
 
Fecha de Ingreso: diciembre-2006
Mensajes: 6
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: usar js en una pagina cargada en un div

Hola.

Tengo exactamente el mismo problema. Hago un fichero donde tengo el AJAX que carga la página en un DIV.
Referente a la respuesta de ADLER ... ya intente cargar el JS en la página cargada (index.php en este caso), intente llamandola desde otro fichero ... y no funciona. Ademas toma en cuenta ADLER que no estamos ocupando el framework de prototype.

Espero respuesta !!
  #4 (permalink)  
Antiguo 30/06/2010, 12:25
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: usar js en una pagina cargada en un div

Hola

Cita:
Iniciado por reydenvosivo Ver Mensaje
Hola.

Tengo exactamente el mismo problema. Hago un fichero donde tengo el AJAX que carga la página en un DIV.
Referente a la respuesta de ADLER ... ya intente cargar el JS en la página cargada (index.php en este caso), intente llamandola desde otro fichero ... y no funciona. Ademas toma en cuenta ADLER que no estamos ocupando el framework de prototype.

Espero respuesta !!
A ver, creo que te has liado

index.php
Código Javascript:
Ver original
  1. <script type="text/javascript" src="xxxxxx.js"></script>
  2. ......
  3.  
  4. function Ajax() {
  5. .......
  6. var scs=ajax.responseText.extractScript();
  7. document.getElementById(id).innerHTML = ajax.responseText.stripScript();
  8. scs.evalScript();
  9. }

otrapagina.php
Código Javascript:
Ver original
  1. <?php
  2. .......
  3. ?>
  4. <script type="text/javascript">
  5. function funcion() {
  6. ...
  7. }
  8. </script>

Un poco de lectura

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: ajax, js
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 18:26.