2.trabajando connavegadores
TRANSCRIPT
![Page 1: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/1.jpg)
Tema 2
Trabajando con
Navegadores
Willy Hurtado Vela
![Page 2: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/2.jpg)
• Adquirir conciencia del problema de botón atrás y adelante en aplicación AJAX y saber solucionarlo
• Conocer el uso de la Clase History y la Interfaz ValueChangeHandler
• Tener la habilidad de escribir código para reconocimiento de navegadores
• Usar la técnica de Vinculación Diferida (Deferred Binding) para desacoplar código.
Objetivos
![Page 3: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/3.jpg)
Contenido
1. El problema del botón Atrás
1.1. Configurando su Pagina HTML
1.2. La clase History
1.3. La Interfaz ValueChangeHandler
2. Detectando Navegadores
2.1. La manera clásica
2.2. Usando Deferred Binding
![Page 4: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/4.jpg)
Trabajando con Navegadores
Codificación en JAVA
Necesidades especificas del navegador o aplicación web
Javascript
![Page 5: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/5.jpg)
1. El problema del botón Atrás
Botones de atrás y adelante en Chrome
![Page 6: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/6.jpg)
1. El problema del boton Back
1.1. Configurando su pagina HTML
<!-- OPTIONAL: include this if you want history support --> <iframe id="__gwt_historyFrame"
style="width:0;height:0;border:0"></iframe>
Unable to initialize the history subsystem; did you
include the history frame in your host page? Try
<iframe src=\"javascript:''\"
id='__gwt_historyFrame'
style='position:absolute; width:0; height:0;
border:0'></iframe>
![Page 7: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/7.jpg)
1. El problema del boton Back
1.2. La clase History
Clase: com.google.gwt.user.client.History
History.addValueChangeHandler()
#page0
#page1
#page2
History.newItem(token)
![Page 8: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/8.jpg)
1. El problema del boton Back
1.3. La Interfaz ValueChangeHandler
Interfaz:
com.google.gwt.event.logical.shared.ValueChangeHandler @Override
public void onValueChange(ValueChangeEvent<String> event) {
// Ir al estado token = event.getValue()
}
#page0 #page1 #page2
![Page 9: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/9.jpg)
2. Detectando navegadores
2.1. La manera clásica
public static native String getUserAgent() /*-{ return navigator.userAgent.toLowerCase();
}-*/;
if (getUserAgent().contains("gecko")) ...
![Page 10: 2.trabajando connavegadores](https://reader035.vdocumento.com/reader035/viewer/2022071814/55a699091a28ab6b2d8b48e2/html5/thumbnails/10.jpg)
2. Detectando navegadores
2.2. Usando Deferred Binding
<!-- Vinculacion Diferida para recocer IE 6 y 8-->
<replace-with class="com.mycompany.project.client.HolaMundoNavegadorIE">
<when-type-is
class="com.mycompany.project.client.HolaMundoNavegadorEstandar"/>
<any>
<when-property-is name="user.agent" value="ie6"/>
<when-property-is name="user.agent" value="ie8"/>
</any>
</replace-with>