Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: hispapo en 10 Febrero 2013, 10:38 am



Título: Problema con botón y javascript
Publicado por: hispapo en 10 Febrero 2013, 10:38 am
Hola,

Tengo una página web en la que quiero insertar un buscador de gimp. Los códigos que he encontrado devuelven los resultados de la búsqueda en la propia página de gimp, es decir te redireccionan a una página estilo: "http://www.bing.com/search?que=casa&B1=Buscar&FORM=FRNT&un=doc&v=1".

Lo que yo quiero conseguir es que esta página de resultados aparezca dentro de otra página propia. Es decir: que cuando se pincha en el botón buscar se abra una página dividida en dos frames: el frame superior contendría una página creada por mí en la que apareciera el logotipo de mi página web (solamente eso) y el frame inferior contuviera dicha página de resultados.

Para ello me estoy valiendo del siguiente código:

Código
  1. <form name="search" id="search" action="javascript:loadFrames('cabecera.html', 'http://www.bing.com/search?que=$_GET['que']&B1=Buscar&FORM=FRNT&un=doc&v=1')" method="get">
  2. <p>
  3. <font face="arial" size="2">Buscar<font color="#808080"> en Bing:</font></font><br />
  4. <input type="text" id="que" size="18" maxlength="251" name="q" /><input type="submit" value="Buscar" name="B1" /><input type="hidden" name="FORM" value="FRNT" /><input type=
  5. "hidden" name="un" value="doc" /><input type="hidden" name="v" value="1" />
  6. </p>
  7. [code=javascript]<script LANGUAGE="javascript">
  8. function loadFrames(page1, page2) {
  9. framecode = "<frameset rows='15%,85%'>"
  10. + "<frame src='" + page1 + "'>"
  11. + "<frame src='" + page2 + "'>"
  12. + "</frameset>";
  13. page = window.open("");
  14. page.document.open();
  15. page.document.write(framecode);
  16. page.document.close();
  17. }
</form>[/code]

Con la parte del script se consigue que se abra la página dividida en frames que contiene las dos páginas explicadas anteriormente (la del logotipo de mi página y la de resultados de búsqueda). El resto del código es el típico formulario para insertar el buscador de bing.
Ambos códigos (formulario y script para abrir dos páginas en una pinchando un botón) funcionan perfectamente por separado. Pero al escribir lo siguiente:
action="javascript:loadFrames('cabecera.html', 'http://www.bing.com/search?que=$_GET['q']&B1=Buscar&FORM=FRNT&un=doc&v=1')"
el botón deja de funcionar y no se abre nada.

muchas gracias por la ayuda!!


Título: Re: Problema con botón y javascript
Publicado por: Ori-chan en 10 Febrero 2013, 11:09 am
Un consejo. Arriba a la derecha hay un cuadro que pone Ge5Hi. Usalo para poner el codigo. Se leera mejor.


Título: Re: Problema con botón y javascript
Publicado por: EFEX en 10 Febrero 2013, 15:27 pm
No es necesario utilizar PHP, podes obtener el valor con js.

Código
  1. <form name="search" id="search" method="get">
  2. <p>
  3. <font face="arial" size="2">Buscar<font color="#808080"> en Bing:</font></font>
  4. <br />
  5. <input type="text" id="que" size="18" maxlength="251" name="q" />
  6. <input type="submit" value="Buscar" name="B1" onclick="showTime();" /> <!-- Al hacer click showTime() inicia -->
  7. <input type="hidden" name="FORM" value="FRNT" />
  8. <input type="hidden" name="un" value="doc" />
  9. <input type="hidden" name="v" value="1" />
  10. </p>
  11. <script LANGUAGE="javascript">
  12. function showTime(){
  13.    var getText = que.value; // Obtenemos lo que se quiere buscar
  14.    loadFrames(
  15.        'cabecera.html',
  16.        'http://www.bing.com/search?q=' + getText + '&go=&qs=ds&form=QBLH&filt=all'); // Le cambie la url para que valla directamente lo que se busque en bing.com
  17. }
  18. function loadFrames(page1, page2) {
  19.    framecode = "<frameset rows='15%,85%'>"
  20.       + "<frame src='" + page1 + "'>"
  21.       + "<frame src='" + page2 + "'>"
  22.       + "</frameset>";
  23.    page = window.open("");
  24.    page.document.open();
  25.    page.document.write(framecode);
  26.    page.document.close();
  27. }
  28. </form>
  29.  

Cuando utilizes geshi, con la etiqueta html es suficiente, no agreges la de javascript.
Era eso  :huh:


Título: Re: Problema con botón y javascript
Publicado por: hispapo en 12 Febrero 2013, 19:24 pm
Muchas gracias!!! Me ha servido de mucho!!!

Lo único, y por saber cómo lo has hecho, ¿cómo sacas esa dirección completa de la búsqueda?

Muchas gracias!


Título: Re: Problema con botón y javascript
Publicado por: EFEX en 12 Febrero 2013, 21:06 pm
Lo único, y por saber cómo lo has hecho, ¿cómo sacas esa dirección completa de la búsqueda?

Solo ir a bing.com y buscar algo, en la barra de dirección te fijas que tiene casi el mismo formato.


Título: Re: Problema con botón y javascript
Publicado por: hispapo en 16 Febrero 2013, 09:35 am
Buenos días,

Al comprobar el código en varios navegadores me ha surgido un problema, y es que en Internet explorer no me funciona. Coge el resultado de la búsqueda y lo añade a la página original, es decir, si la página original es www.google.es le añade lo siguiente:

Código
  1. www.google.es/?q=casa&B1=Buscar&FORM=FRNT&un=doc&v=1

Pero no realiza la búsqueda.

El problema creo que surge de la parte del código que abre dos páginas dentro de una dividida en frames, es decir, en:

Código
  1. function loadFrames(page1, page2) {
  2. framecode = "<frameset rows='15%,85%' BORDER=0 FRAMEBORDER=0 FRAMESPACING=0>"
  3.   + "<frame src='" + page1 + "'>"
  4.   + "<frame src='" + page2 + "'>"
  5.   + "</frameset>";
  6. page = window.open("");
  7. page.document.open();
  8. page.document.write(framecode);
  9. page.document.close();
  10. }
  11.  

Pero no llego a saber cuál es el problema...

Muchas gracias!!


Título: Re: Problema con botón y javascript
Publicado por: hispapo en 17 Febrero 2013, 10:13 am
He probado a pasar el Debugbar de Internet Explorer, y el único fallo que me da es que "que" no está definido....

La verdad, no sé si será eso porque si utilizo solamente la función que abre dos páginas en frames tampoco me funciona y el DebugBar no me saca ningún fallo.

Alguna idea?? Muchas gracias!!


Título: Re: Problema con botón y javascript
Publicado por: #!drvy en 17 Febrero 2013, 11:46 am
Cambia

Código
  1. var getText = que.value;

Por

Código
  1. var getText = document.getElementById('que').value;

PD: Pulsando "F12" en IE9+ (no se que tal anda en IE8), tienes lo que es la herramienta de desarrollador que tiene consola y editor de recurso avanzado. No hace falta instalar complementos adicionales.

PD2: Si lo vas a manejar todo con javascript, en vez de tener un botón "submit", cámbiale a tipo "button" (el de "Buscar" digo). O haz un event.preventDefault() para por si acaso. Así realmente no envías el formulario pero si lanzas el javascript.

Saludos


Título: Re: Problema con botón y javascript
Publicado por: hispapo en 17 Febrero 2013, 12:32 pm
Muchas gracias por la ayuda!!! Ahora sí que me funciona todo perfectamente!!! ;-)

Buscaré qué es lo que hace eso que comentas de event.preventDefault(), para futuras ocasiones...

Lo que comentas de F12, lo había probado y no conseguía hacerlo funcionar a pesar de tener IE9, y habilitar ciertas cosas que habia encontrado en la web.

Nuevamente, muchas gracias por la ayuda!!!