Author Topic: Sin teclado virtual en el sitio del Banco Agricola  (Read 82834 times)

0 Members and 1 Guest are viewing this topic.

Offline hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Posts: 3345
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #135 on: April 08, 2011, 12:59:13 pm »
Listo!!! Nueva version de NoTecladoVirtual!! Ahora deja cambiar password con el teclado normal :D

Mejoras?

1) Se puede cambiar el password utilizando el teclado convencional.

2) Agregue un trozo de codigo por sugerencia de naruto http://www.svcommunity.org/forum/programacioacuten/sin-teclado-virtual-en-el-sitio-del-banco-agricola/msg671485/#msg671485
Algo  tarde lo se.

3) Refactorizacion del codigo para utilizar un solo bookmarklet para ambos casos (login y cambio de password)

4) Desaparece el teclado virtual de pantalla cuando se activa el bookmarklet.

Aqui les dejo la nueva version
https://gist.github.com/raw/913900/19ab589344231fed0cf386b760686b03ce19227b/NoTecladoVirtualV2_1.js

Agreguenlo a sus marcadores y no dejen que el teclado virtual los moleste de nuevo.  :drinks:

pd: Lo he probado solo en el chrome asi que si encuentran bugs en otros navegadores, reportarlo aqui.
« Last Edit: April 11, 2011, 11:30:49 am by hkadejo »

Offline Jaru

  • The Communiter-
  • *
  • Posts: 13252
  • some text
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #136 on: April 08, 2011, 01:35:06 pm »
mega win!

que bien hkadejo, veo que siempre usas la sugerencia que te hice para meter un rango de caracteres usando un loop
Code: [Select]
for (var i=32; i<170; i++){letras[i] = String.fromCharCode(i);} :drinks:

no por gusto sos de los RESERVOIR COMMUNOS  :azn:
N/A

Offline hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Posts: 3345
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #137 on: April 08, 2011, 01:50:12 pm »
mega win!

que bien hkadejo, veo que siempre usas la sugerencia que te hice para meter un rango de caracteres usando un loop
Code: [Select]
for (var i=32; i<170; i++){letras[i] = String.fromCharCode(i);} :drinks:

no por gusto sos de los RESERVOIR COMMUNOS  :azn:

Ese pequeño codigo es mas elegante que el gran desmadre que tenia de ir caracter por caracter.

y bueno si alguien puede probarlo en el IE que avise como funciona.

Offline Darkness

  • The Communiter-
  • *
  • Posts: 2147
  • The Darkness
    • Diseño y Programaciòn Web Profesional
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #138 on: April 08, 2011, 02:38:55 pm »
Test en FF 4.0 

Funciona de maravilla   :yahoo: 

Thanks
La Muerte Simplemente es el Despertar de Un Sueño Lleno de Falsedades e hipocrecias.
"Larga Vida Al Heavy Metal"

Iron Maiden Discografia DD

Offline Zantetsuken

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Posts: 4757
  • Bokura wa hitotsu ONE PIECE!!
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #139 on: April 09, 2011, 03:44:36 pm »
como puedo probarlo en Opera 11 ?
Mi PSN ID: Zantetsv84

Offline hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Posts: 3345
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #140 on: April 10, 2011, 08:16:22 am »
como puedo probarlo en Opera 11 ?

Asi mira:

1) Das click sobre el link que te lleva al codigo fuente


2) Copias todo el codigo (click derecho -> Copy)


3)Abris el administrador de bookmarklets


4)Creas un nuevo bookmarklet


Donde dice Address pega todo el codigo que copiastes previamente


5) Y luego lo probas


6) Y eso es todo.


Offline Zantetsuken

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Posts: 4757
  • Bokura wa hitotsu ONE PIECE!!
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #141 on: April 10, 2011, 10:59:50 am »
Hola hkadejo, fijate que hice todo en el Opera 11 y solo me aparece una pantalla en blanco  :sad: lo unico que no abro la pagina del BAC, me voy directo al bookmark y hasta reinicio el opera para ver si es eso:



Uploaded with ImageShack.us
Mi PSN ID: Zantetsv84

Offline darkela

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Posts: 1619
  • 다르켈라
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #142 on: April 10, 2011, 11:16:18 am »
Hola Zantetsuken
es que creo que debes probarlo sobre la pagina del BA

Offline Zantetsuken

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Posts: 4757
  • Bokura wa hitotsu ONE PIECE!!
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #143 on: April 10, 2011, 11:18:06 am »
Hola Zantetsuken
es que creo que debes probarlo sobre la pagina del BA

ok, entendido!! gracias darkela! :D
Mi PSN ID: Zantetsv84

Offline darkela

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Posts: 1619
  • 다르켈라
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #144 on: April 10, 2011, 11:33:52 am »
Yo lo acabo de hacer los mismos pasos para el firefox

1. copian el codigo de @hkadejo


2. click derecho en la barra de bookmarks


3. click en nuevo bookmarks y les va a aparecer la cajita donde llenar los campos, le ponen nombre a su bookmark y en location pegan el codigo de @hkadejo y le dan guardar


4. listo!


Abren la pagina de BA y le dan click al bookmark y desaparece el teclado  ohyea: ohyea: ohyea: ohyea:  :sur: :sur: :sur: :sur: :sur: :sur:




Offline Zantetsuken

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Posts: 4757
  • Bokura wa hitotsu ONE PIECE!!
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #145 on: April 10, 2011, 11:37:34 am »
probado de esa misma forma en opera 11 y funciona  :yahoo:
Mi PSN ID: Zantetsv84

Offline obser7er

  • The Communiter-
  • *
  • Posts: 4728
  • ferg(at)pcpimpz.com
    • PcPimpz Gamer Store - sucursal SVC
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #146 on: April 10, 2011, 05:47:00 pm »
Esta versión del código tenía bastante código redundante que se podía abreviar cuando se crean los campos de texto del login o de cambiar contraseña. Eso fue lo que hice. El resultado es que ahora el Bookmarklet solo ocupa 3.59Kb, y originalmente ocupaba 5.8 Kb. El espacio restante se puede aprovechar para seguir introduciendo mejoras sin afectar el espacio porque ahora se puede reusar. Solo hace falta ver si funciona bien

El resultado es que no funciona... XD  :thumbsup: Algo así como que el código redundante según tu apreciación, no era tan redundante que digamos  :D
info: ferg(at)pcpimpz.com
Newegg|TigerDirect|Amazon|Directron|DELL-USATODO NUEVO Y SELLADO - Mandar a traer HW no es más barato pero es lo mejor!

Offline hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Posts: 3345
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #147 on: April 10, 2011, 07:00:42 pm »
Esta versión del código tenía bastante código redundante que se podía abreviar cuando se crean los campos de texto del login o de cambiar contraseña. Eso fue lo que hice. El resultado es que ahora el Bookmarklet solo ocupa 3.59Kb, y originalmente ocupaba 5.8 Kb. El espacio restante se puede aprovechar para seguir introduciendo mejoras sin afectar el espacio porque ahora se puede reusar. Solo hace falta ver si funciona bien, aunque debería:
{http://devel.no-ip.org/tmp/NoTecladoVirtual.html}
{http://devel.no-ip.org/tmp/NoTecladoVirtual.html}

Sobre el codigo redundante,solo dire que la prioridad era eliminar el teclado virtual, y luego optimizar.Asi que la fase de refactorizar es la que continua, gracias por empezar  :thumbsup:


- ¿Por qué se vuelven a generar los valores de las teclas del teclado virtual? ¿No se podría simplemente eliminar esa parte? ¿O es porque se vuelven a mandar al servidor como verificación de validación?

Al servidor del banco agricola a parte del password "plano" se envia el password encriptado con algun algoritmo que desconozco, cada letra tomar un valor hash. El teclado virtual lo que hace es precisamente eso, crear el password encriptado. Sino envias ese hash sencillamente el login falla asi que por eso se vuelven a generar.

- ¿Dónde hay alguna explicación que deje claro lo que estos valores ocultos contienen y lo que está haciendo el código que genera estos valores? Además de que esa es la mayor parte del código. Hace falta una versión del código con comentarios, aparte de esta versión "compilada".

Mañana espero tomarme un rato para documentar el codigo, la primera vez que publique el script en mi blog puse una explicacion mas tecnica, pero esa entrada la he perdido, asi que volvere a explicarlo.

- ¿Qué es lo que representa la variable ifr? Parece que solo es para ver si la dirección actual es https://www.pcbac.com/PotalaPersonal/home.do (¿el formulario de Cambiar Contraseña?), mientras que la dirección de login es https://www.pcbac.com/PotalaPersonal/login.do.

ifr viene de iframe o frame, es una variable que utilizo para determinar si estoy en la pantalla de login o si ya me encuentro dentro de la aplicacion del banco agricola, te cuento que el sitio del agricola esta creado con frames, un header, un menu a la izquierda y la pantalla principal, son como tres frames. Asi que cuando se cargan las opciones se hace en el frame principal y la direccion no cambia, asi que para saber si estoy en el login o la opcion de cambio de password (que es el otro lado donde esta el teclado) solo valido la url en la que me encuentro.

- ¿Por qué es necesaria la función copyText? ¿Y en cuanto a los valores ocultos que maneja?

copyText sencillamente lo que hace es que el texto plano del pass o user lo convierte al hash (luego ampliare esta explicacion tan vaga)

- Hasta ahora en lo personal he estado ayudando sin tener una cuenta en este banco. ¿Qué necesito para poder tener una cuenta de ebanca para poder probar yo mismo cambios que haga al Bookmarklet? ¿Es suficiente con una tarjeta como la chequeMax o equivalente, o hay que pagar mensualmente por usar la ebanca?

Si tenes cuenta de chequemax solo te acercas una agencia y ahi creas el usuario de ebanca.

Bueno me tomare un momento el dia de mañana para dar una explicacion mas tecnica y detallada de todo el codigo, para responder mas satisfactoriamente las preguntas del compañero.

El resultado es que no funciona... XD  :thumbsup: Algo así como que el código redundante según tu apreciación, no era tan redundante que digamos  :D

Si hay codigo redundante y ya se a que se refiere XD ya vere de hacer la mejora al codigo. Y leyendo el codigo del compañero creo que se porque no funciona, pero aun no estoy seguro si es por eso, en cuanto pueda hago la observacion.
« Last Edit: April 10, 2011, 07:09:20 pm by hkadejo »

Offline hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Posts: 3345
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #148 on: April 11, 2011, 11:13:07 am »
Version explicada/documentada del script

https://gist.github.com/raw/913865/06d69075c5d5ddb9b00e0ce7dcac6ff627d3e205/NoTecladoVirtualV2Explicado.js

Es una explicacion simple y rapida (y creo que no muy buena no ando con mucho tiempo ahorita) pero creo que puede ayudar a comprender un poco mejor el codigo. En todo caso cualquier duda o comentario, aqui las estare respondiendo.

y aprovechando hice un pequeño refactor al script para que sea mas liviano, he aqui la nueva version, eliminando codigo repetido y tratando de optimizar unas cositas mas
https://gist.github.com/raw/913900/19ab589344231fed0cf386b760686b03ce19227b/NoTecladoVirtualV2_1.js
« Last Edit: April 11, 2011, 11:31:56 am by hkadejo »

Offline JaiMe

  • Global Moderator
  • The Communiter-
  • *
  • Posts: 1485
  • λ | h+
Re: Sin teclado virtual en el sitio del Banco Agricola
« Reply #149 on: April 11, 2011, 07:03:27 pm »
me gusta como este script ha ido evolucionando, especialmente el ver como las skills de hkadejo en JS agarran vuelo!

Mis observaciones,

La siguiente funcion $ que abstrae la selecion de elementos del DOM

Code: [Select]
var $ = function(idname) {
    var e;
    var doc;
    if (!ifr) {
        doc = document;
    } else {
        doc = window.frames['working'].document
    }
    e = doc.getElementById(idname);
    if (!e) {
        e = doc.getElementsByName(idname)[0];
    }
    return e;
};

puede ser reescrita a:

Code: [Select]
var $ = function(idname) {
    var doc = ifr ? window.frames.working.document : document;
    return doc.getElementById(idname) || doc.getElementsByName(idname)[0] || '';
};


User Friendliness

La funcionalidad final del script es hacer el processo de log in mas amigable, pero la instalacion no es tan simple para un usuario final. Esto puede ser remediado haciendo un landing page con un link que permita al usuario solamente arrastrar el bookmarklet a su barra de favoritos. Diigo lo hace asi:



en el caso de este script algo simple bastaria.

Dev Friendliness

Tambien es buena idea centralizar el codigo, mantener una version en development con todos los comment (preferiblemente mantener el repo updated), luego usar YUI-Compressor para crear la production version.
"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson