Foros del Web » Programando para Internet » Javascript »

Abrir nueva página dentro de la actual

Estas en el tema de Abrir nueva página dentro de la actual en el foro de Javascript en Foros del Web. Tengo un problema, vamos a ver... pongo en situación: Tengo una web de turismo, con visitas virtuales, entonces supongamos que estoy en la pagina de ...
  #1 (permalink)  
Antiguo 22/04/2015, 04:07
 
Fecha de Ingreso: julio-2011
Ubicación: Santa Amalia
Mensajes: 22
Antigüedad: 13 años, 4 meses
Puntos: 1
Abrir nueva página dentro de la actual

Tengo un problema, vamos a ver... pongo en situación:

Tengo una web de turismo, con visitas virtuales, entonces supongamos que estoy en la pagina de una localidad (donde muestro información sobre la ciudad) y en una parte de la web (supongamos que al final) quiero insertar una vista de una camara 360º que he generado con un programa que me crea sus propios directorios y archivos html.

Y dependiendo si es movil o desktop me muestra un html u otro, entonces he puesto este código JavaScript:

Código:
<script type="text/javascript">
	var _url="";
	var _bi=window.navigator.userAgent.toLowerCase();
	if(_bi.indexOf("iphone")>0 || _bi.indexOf("ipad")>0 || _bi.indexOf("ipod")>0) _url="html5/Abadia.html";
	else _url="flash/TourWeaver_Abadia.html";
	window.location.href=_url;
</script>
El problema es que directamente lo que me hace es redireccionarme a esa ruta, y pierdo toda la información de la ciudad, mostrándome solo la imagen de la visita virtual.

Me gustaría saber como poder incrustar esa visita virtual dentro de la misma página de la ciudad (y claro está que me siga permitiendo seleccionar automaticamente que dispositivo es con el que se está visualizando)

PD: supongo que la solución está en cambiar la última linea, o sea la manera de abrir la web. He probado con window.open y nada
  #2 (permalink)  
Antiguo 22/04/2015, 04:20
 
Fecha de Ingreso: marzo-2015
Mensajes: 42
Antigüedad: 9 años, 9 meses
Puntos: 2
Respuesta: Abrir nueva página dentro de la actual

¿Utilizas Java? Porque desde Java y páginas.jsp es fácil incluir una pagina dentro de otra. No tengo ni idea de cómo se podría realizar en javascript.

Quizás con un location.href="urldelapágina.html", pero eso te redirecciona, no te incluye la página...
  #3 (permalink)  
Antiguo 22/04/2015, 04:28
 
Fecha de Ingreso: julio-2011
Ubicación: Santa Amalia
Mensajes: 22
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Abrir nueva página dentro de la actual

Claro eso es precisamente lo que tengo hecho pero me redirecciona. Pues la verdad es que en Java no sabría hacerlo no lo he usado nunca.

Creo que trataré de hacerlo con iframes, pero es que no me gusta mucho porque así tendré que definir un area fijo, y no me gustaría que ocupara lo mismo el iframe de los móviles que el del pc
  #4 (permalink)  
Antiguo 22/04/2015, 04:29
 
Fecha de Ingreso: marzo-2015
Mensajes: 42
Antigüedad: 9 años, 9 meses
Puntos: 2
Respuesta: Abrir nueva página dentro de la actual

Aquí tienes a alguien que pregunta exactamente lo mismo que tú (creo):

http://stackoverflow.com/questions/4967629/insert-external-page-html-into-a-page-html

Le responden que tiene 2 opciones: utilizar un iframe (esto no sé lo que es) o una petición AJAX
  #5 (permalink)  
Antiguo 22/04/2015, 06:51
 
Fecha de Ingreso: julio-2011
Ubicación: Santa Amalia
Mensajes: 22
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Abrir nueva página dentro de la actual

Llevo un buen rato para intentar la solución con AJAX pero no lo consigo, supuestamente está bien el ejemplo pero pone más abajo que hay que añadir tambien "http = createRequestObject ()", lo he añadido a la función "function sendReq(req) " pero sigue sin funcionar.
Si alguien consiguiera hacer funcionar el método de AJAX estaría muy agradecido.

Estoy probando así, si alguien tiene alguna sugerencia...

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <title>Prueba Ajax</title>
  3. </head>
  4.         <p>hola</p>
  5.  
  6.         <script type="text/javascript">
  7.  
  8.         function createRequestObject()
  9.         {
  10.             var obj;
  11.             var browser = navigator.appName;
  12.             if (browser == "Microsoft Internet Explorer") {
  13.                 obj = new ActiveXObject("Microsoft.XMLHTTP");
  14.             } else {
  15.                 obj = new XMLHttpRequest();
  16.             }
  17.             return obj;
  18.         }
  19.  
  20.         function sendReq(req)
  21.         {    
  22.             http = createRequestObject();
  23.             http.open('get', req);
  24.             http.onreadystatechange = handleResponse;
  25.             http.send(null);
  26.         }
  27.  
  28.         function handleResponse()
  29.         {    
  30.             if (http.readyState == 4)
  31.             {
  32.                 var response = http.responseText;
  33.                 document.getElementById('flashcontent').innerHTML=response;
  34.             }
  35.         }
  36.  
  37.          sendReq('http://158.49.247.14/caceresvirtual/contenido/abadia/flash/TourWeaver_Abadia.html');
  38.  
  39.         </script>
  40.         <p>Adios</p>
  41. </body>
  42. </html>
  #6 (permalink)  
Antiguo 22/04/2015, 08:37
 
Fecha de Ingreso: marzo-2015
Mensajes: 42
Antigüedad: 9 años, 9 meses
Puntos: 2
Respuesta: Abrir nueva página dentro de la actual

La petición AJAX sería así:

Código Javascript:
Ver original
  1. window.onload = function () {
  2.             var xmlhttp; // En esta variable recogeremos lo que nos responda el servidor
  3.            
  4.             document.getElementById(id_donde_escribiremos).innerHTML="Cargando..."; /* Mientras
  5.             se hace la petición al servidor, escribimos "Cargando" o algo así para que aparezca en
  6.             pantalla*/
  7.             if (window.XMLHttpRequest)
  8.                 {// code for IE7+, Firefox, Chrome, Opera, Safari
  9.                 xmlhttp= new XMLHttpRequest();
  10.                 }
  11.             else
  12.                 {// code for IE6, IE5
  13.                 xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
  14.                 }
  15.                  
  16.             function escribir() { /* Creamos esta función para que JavaScript la utilice una vez le
  17.             responda el servidor, es decir, que significa que el servidor ya nos ha respondido*/
  18.                 if (xmlhttp.readyState===4 && xmlhttp.status===200) // Nos da el visto bueno
  19.                     { // Escribimos el resultado
  20.                     document.getElementById(id_donde_escribiremos).innerHTML=xmlhttp.responseText;
  21.                     }
  22.                 else { // No nos da el visto bueno
  23.                     document.getElementById(id_donde_escribiremos).innerHTML="ERROR";
  24.                 }
  25.             } // Fin de la función escribir
  26.                
  27.             xmlhttp.onreadystatechange = escribir; /*Cuando el servidor le responda, llama a la
  28.             función escribir anteriormente declarada*/
  29.             xmlhttp.open("POST","http://www.misitio.com/cargar_datos.html",true); /*dirección donde
  30.             se encuentra la pagina html */
  31.             xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  32.             xmlhttp.send("que_datos="+datos+"&que_valor="+valor); /* Si queremos enviarle
  33.             parámetros al servidor, podemos hacer de esta manera*/  
  34.         }

Última edición por Tusade; 22/04/2015 a las 08:43
  #7 (permalink)  
Antiguo 23/04/2015, 03:41
 
Fecha de Ingreso: julio-2011
Ubicación: Santa Amalia
Mensajes: 22
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Abrir nueva página dentro de la actual

Antes de nada muchas gracias, solo alguna preguntilla sobre el código que me acabas de escribir:

¿Todo esto iría dentro de las etiquetas: <script type="text/javascript"> tu codigo </script>?

¿Cuando pones "id_donde_escribiremos", te refieres a que debajo me cree un <div id=nombre></div>?

Y la última: ¿la ultima linea donde pones xmlhttp.send("que_datos="+datos+"&que_valor="+valo r); esa es necesario usarla aunque no quiera mandar nada de vuelta?
  #8 (permalink)  
Antiguo 23/04/2015, 08:34
 
Fecha de Ingreso: marzo-2015
Mensajes: 42
Antigüedad: 9 años, 9 meses
Puntos: 2
Respuesta: Abrir nueva página dentro de la actual

Cita:
¿Todo esto iría dentro de las etiquetas: <script type="text/javascript"> tu codigo </script>?


Cita:
¿Cuando pones "id_donde_escribiremos", te refieres a que debajo me cree un <div id=nombre></div>?
Un div u otro elemento contenedor para utilizar el innerHTML, sí.

Cita:
¿la ultima linea donde pones xmlhttp.send("que_datos="+datos+"&que_valor="+valo r); esa es necesario usarla aunque no quiera mandar nada de vuelta?
Ni idea, no lo he probado (aunque creo que sí, porque siempre está justo después de haber declarado todas las variables), pero si te da problemas, ponle un "null" a todo el paréntesis.

El AJAX normalmente se utiliza para hacer consultas desde el cliente a las bases de datos de un servidor sin tener que recargar la página. Por eso se le envia parámetros y tal.

Otra cosa que descubrí es que NO hay que utilizar localhost a la hora de poner la dirección del servidor.

Última edición por Tusade; 23/04/2015 a las 08:44

Etiquetas: actual, html, página
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 20:34.