Lorem Ipsum/DOL Differet Solmena

Separat existentie 2010 Unee MYT por scientie, musica, sport etc, litot Europa usa li sam Vocabular Lingues, differe solmen in li grammatica, li pronunciation. Delete this widget in Dashboard and add yours. This is just an example. Read More

Re: [gtug-bsas] [Ayuda] Extensión en Chrome

lunes, 23 de enero de 2012

Y el event del DOM? OnLoad? o algo asi no era.

JD

2012/1/11 Juan Simon <juan.simon@gmail.com>
Gracias Pablo por lo del timer, no lo había pensado, estoy muy acostumbrado a los Events de jQuery... Igual tenemos el problema de la velocidad de carga de cada pagina...


Acá Encontré una solución:

Seteo la ID del tab en una variable y en cada evento tipo Update de los tabs me fijo cual es el siguiente con el estado Loading que tenga la misma ID, ese es el momento :D

Ahora solo tengo que armar los iconos y recolectar los datos de las paginas con timers




var sites = {
ocmz : {
needle : 'http://oneclickmoviez.com/down/?',
fc : function(getit) {
return getit.replace("http://oneclickmoviez.com/down/?", "");
}
},
simhost : {
needle : 'http://simhost.com.ar/hosting.php',
fc : function(getit) {
return getit.replace("hosting.php", "");
}
}
}
var tabsEvent = null;

function compararUrls(tabId, changeInfo, tab) {
if(changeInfo.status === "loading") {
if(tabId == tabsEvent){
tabsEvent = null;
chrome.pageAction.show(tab.id);//Mostamos el icono
}



for(key in sites) {
if(tab.url.indexOf(sites[key]['needle']) > -1) {//Comparamos si estamos en uno de los sitios del objecto
var newurl = sites[key]['fc'](tab.url);//Aplicamos la funcion correspondiente a ese sitio

chrome.tabs.update(tab.id, {//vamos a la nueva URL
url : newurl
}, function(tab) {
tabsEvent = tab.id;
});
}
}
}
}
chrome.tabs.onUpdated.addListener(compararUrls);

Juan S. Simon



2012/1/10 Pablo Moyano <ultraklon@gmail.com>
Una solucion chancha es.... la digo? ya lo pensaron todos?
un timer chancho que espere.... 1 segundo por ejemplo y ahi muestre el
icono, obviamente que el timer empiece en el callback

la solucion elegante, deberia ser encontrar una funcion trigger de
cuando se termina de cargar una pagina y ahi hacer el set del tab

creo, digo yo

saludos

2012/1/10 Juan Simon <juan.simon@gmail.com>:
> Para el que quiera entretenerse un rato con un poco de JavaScript
> o reírse de mi ignorancia (cualquiera de las 2 opciones es valida) tengo un
> pequeño problema con una extensión que estoy armando (uno de mis 64813351
> proyectos)
>
> Primero les cuento que tiene que hacer:
>
> Detecta automáticamente que uno está esperando en una pagina de espera
> tipo re-dirección, como por ejemplo "
> http://oneclickmoviez.com/down/?http://www.imdb.com/title/tt1634122/"
> Aplica una función sobre la URL
> Actualiza el Tab del navegador con la nueva URL (carga la nueva URL)
> Muestra un icono a la derecha de la URL con la leyenda "Just skiped a count
> page!"
>
> La idea es mostrarle al cliente que la extensión hace algo :P
>
>
> Ahora lo que está haciendo:
>
> Detecta automáticamente que uno está esperando en una pagina de espera
> tipo re-dirección, como por ejemplo
> " http://oneclickmoviez.com/down/?http://www.imdb.com/title/tt1634122/"
> Aplica una función sobre la URL
> Actualiza el Tab del navegador con la nueva URL (carga la nueva URL)
> Muestra un icono a la derecha de la URL con la leyenda "Just skiped a count
> page!" pero mientras en el Tab se está mostrando la URL vieja
> En cuanto se carga la nueva URL desaparece el icono de la derecha
>
> Hasta donde yo entiendo el problema está en que el callback
> de chrome.tabs.update se ejecuta cuando se termina de hacer el update y no
> cuando el update se termina de cargar (espero se entienda)
>
>
> Les dejo el código JavaScript para el que entienda un poco mas que yo (y
> tenga ganas)
>
>
>> var sites = {
>> ocmz : {
>> needle : 'http://oneclickmoviez.com/down/?',
>> fc : function(getit) {
>> return getit.replace("http://oneclickmoviez.com/down/?", "");
>> }
>> },
>> simhost : {
>> needle : 'http://simhost.com.ar/hosting.php',
>> fc : function(getit) {
>> return getit.replace("hosting.php", "");
>> }
>> }
>> }
>> function compararUrls(tabId, changeInfo, tab) {
>> if(changeInfo.status === "loading") {
>> for(key in sites) {
>> if(tab.url.indexOf(sites[key]['needle']) > -1) {//Comparamos si estamos en
>> uno de los sitios del objecto
>> var newurl = sites[key]['fc'](tab.url);//Aplicamos la funcion
>> correspondiente a ese sitio
>> chrome.tabs.update(tab.id, {//vamos a la nueva URL
>> url : newurl
>> }, function(tab) {//callback
>> chrome.pageAction.show(tab.id);//Mostamos el icono
>> });
>> }
>> }
>> }
>> }
>> chrome.tabs.onUpdated.addListener(compararUrls);
>
>
>
>
> Desde ya muchas gracias,
> Saludos,
> Juan S. Simon


0 comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.