JD
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 :DAhora solo tengo que armar los iconos y recolectar los datos de las paginas con timersvar sites = {var tabsEvent = null;
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", "");
}
}
}if(tabId == tabsEvent){
function compararUrls(tabId, changeInfo, tab) {
if(changeInfo.status === "loading") {
tabsEvent = null;
chrome.pageAction.show(tab.id);//Mostamos el icono}tabsEvent = tab.id;
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) {
});
}
}
}
}
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.