Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: RUBUB en 21 Octubre 2015, 10:38 am



Título: Código para abrir varias páginas web
Publicado por: RUBUB en 21 Octubre 2015, 10:38 am
Buenas!  :D
Necesito hacer un código, a ver si me ayudan a ver la luz, seguro que para vosotros será sencillo:

Necesito abrir una web con el siguiente formato: www.loquesea.com/año/mes/día
Quiero hacer un bucle que recorra un rango entre fechas (las puedo poner a mano, no hace falta que me vengan de un formulario -aunque eso sería lo más ;) -) y vaya abriendo las páginas.
había pensado en PHP para hacerlo y que sería algo así:

while %mes_inicial <= %mes_final
   for %dia=1 to 31
      abrir: www.loquesea.com/2015/%mes/%dia
   end for
   %mes=%mes+1
end while
 
No me importa que la página no exista (por ejemplo en el caso de meses de 30 días) o que tenga que poner el año "a mano".

Muchas gracias por vuestra ayuda!!!
saludos,


Título: Re: Código para abrir varias páginas web
Publicado por: eLank0 en 21 Octubre 2015, 13:19 pm
Lo que realmente quieres es abrir muchas páginas en un navegador, para ello usa un bucle y javascript:

Código
  1. function abrirVentana (URL) {
  2.    window.open(URL,"byspel","width=1200,height=750,menubar=no")
  3. }
  4.  
  5. var urls = array("URL1", "URL2", "URLN");
  6.  
  7. for (let i of urls) {
  8.     abrirVentana(i)
  9. }
  10.  

Nota para comprender el código: For..of y let nuevas características de ECMAScript6. El primero hace exactamente lo mismo que For..in lo que la variable devuelve el valor dentro de la colección y no su índice. Con let declaramos variables que no seran accesibles fuera de su ámbito.

Salu2!  :silbar:

PD: El código que has puesto no es precísamente PHP!!!


Título: Re: Código para abrir varias páginas web
Publicado por: RUBUB en 21 Octubre 2015, 13:44 pm
Muchas gracias eLank0!
Lo probaré y te cuento. Una cosa, ¿hay forma de rellenar el array de URLs de forma automática? es decir, hacer un bucle que lo vaya rellenando con el formato que me interesa.

Saludos!

PD: Ya suponía que no era muy PHP, ni JS, ni C...  :-[ de no practicar me falla un pelín la sintaxis,jeje. Lo tengo en la cabeza pero me cuesta traducirlo.


Título: Re: Código para abrir varias páginas web
Publicado por: MinusFour en 21 Octubre 2015, 16:08 pm
Código
  1. var urls = array("URL1", "URL2", "URLN");
  2.  
  3. for (let i of urls) {
  4.     abrirVentana(i)
  5. }
  6.  

Nota para comprender el código: For..of y let nuevas características de ECMAScript6. El primero hace exactamente lo mismo que For..in lo que la variable devuelve el valor dentro de la colección y no su índice. Con let declaramos variables que no seran accesibles fuera de su ámbito.

For..of y for.. in no son lo mismo. For..of construye un iterador del objeto que vas a iterar, for..in enumera las propiedades enumerables del objeto (incluyendo las propiedades enumerables en la cadena del prototipo).

Si vas a usar las nuevas herramientas de ES6 ten cuidado con la compatibilidad de los navegadores que estes usando. Ninguno de los IE soportan for..of (Edge si). Firefox y Chrome, ya tienen tiempo soportandolo (aunque no estoy seguro si completamente). Android, creo que apartir de la 4.4.

Let no tiene soporte en movil (aunque si en IE11), no lo soporta Safari de momento y en Firefox tienes que especificar version:

Código
  1. <script type="application/javascript;version=1.8">

Lo mejor sería que usaras un transpilador (aunque creo que no hay transpiladores que soporten TDZ).


Título: Re: Código para abrir varias páginas web
Publicado por: eLank0 en 22 Octubre 2015, 11:19 am
Para solucionar problemas con los navegadores, Mozilla provee de PolyFills (scripts para que ciertas propiedades de javascript sean accesibles desde cualquier navegador)

S2