2010-10-04 27 views
5

Estoy haciendo una extensión de cromo que usa pageAction.mostrar ventana emergente de acción de página al hacer clic en

Puedo establecer cuando se muestra si quiero que tenga una ventana emergente o manejar el clic a mí mismo.

Lo que quiero hacer es manejar el clic yo mismo, pero con ciertos escenarios no quiero procesar el código normal, y quiero mostrarle un mensaje al usuario. Preferiblemente con una ventana emergente.

Pero resulta que puedo hacer que la páginaAcción tenga una ventana emergente o tener un onClick. Pero no ambos.

I puede mostrar una alerta, pero eso es feo.

Respuesta

3

Actualmente, no existe una forma "ordenada" u oficial de manejar ambos. Puedes simplemente hacer cualquiera de los dos. Pero hay algunas soluciones que algunos productos de extensión de Google han hecho.

Primero, configúralo para mostrar la ventana emergente. Y dentro de su emergente pageaction, puede hacer que el código de inicialización a ser algo como esto:

Página Acción Emergente:

function init() { 
    if (getClickBehaviour() == 'popup') 
    handlePopup(); 
    else 
    openPage(); 
} 

function getClickBehaviour() { 
    return localStorage['CLICK_BEHAVIOR'] || 'popup'; 
} 

function openPage() { 
    chrome.tabs.create({url: 'http://google.ca'}); 
    window.close(); 
    }); 
} 

init(); 

A continuación, puede dejar que sus opciones, establecer el comportamiento de la pulsación. Si desea comportamientos diferentes en cada clic, puede hacerlo también.

Como habrás notado, estamos cerrando la ventana emergente inmediatamente después del comportamiento "predeterminado" que no queremos que muestre la ventana emergente. Esa es actualmente la única forma de implementar diferentes comportamientos.

0

Aún no lo he probado, pero ha intentado configurar la ventana emergente en la cadena vacía cuando desea manejar el clic (chrome.pageAction.setPopup('')) y su ventana emergente cuando desea mostrar un mensaje. No estoy seguro si se llama al controlador de eventos onClicked en ese caso (donde el menú emergente se establece dinámicamente en la cadena vacía), pero vale la pena investigarlo.

Por lo que sé, generalmente no hay forma de abrir una ventana emergente mediante programación para una página o acción del navegador. (Lo cual es una lástima, me encantaría esta funcionalidad, pero puede imaginarse algunas de las molestias si esto fuera posible.)

+0

cuando se establece la ventana emergente, el onClicked no se dispara, por lo que debe ser al revés – HannesNZ

Cuestiones relacionadas