Estoy empezando con la Extensión de Google Chrome y desarrollo de mi proyecto consiste en hacer una extensión que cuando se hace clic imprime la URL de cualquier página/pestaña está actualmente abierto.

Así que si estoy en google de la página de inicio y haga clic en mi extensión, necesito «https://www.google.com/» como mi salida dentro de la extensión.

Necesito hacer esto con javascript y soy incapaz de encontrar el código que entiendo y lo que hace todo el trabajo. He leído acerca del uso de la ventana».ubicación» y «documento».href» y esas cosas, pero no que me da la url de mi solo de extensión y no en la ficha actual?

Por favor me ayude a empezar. Gracias de antemano.

InformationsquelleAutor Darth Coder | 2013-08-26

7 Comentarios

  1. 50

    Intentar

    chrome.tabs.getCurrent(function(tab){
            console.log(tab.url);
        }
    );

    Nota debe tener la tabs conjunto de permisos en el archivo de manifiesto

    "permissions": [
        "tabs"
    ],

    http://developer.chrome.com/extensions/tabs.html

    o la activeTab permiso si inicia un clic en el botón de la extensión de[Xan]

    https://developer.chrome.com/extensions/activeTab


    Si lo anterior no funciona, pruebe

    chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
        console.log(tabs[0].url);
    });
    • Umm he probado el código, pero no está funcionando. Este es el error en la consola: Uncaught TypeError: No se puede leer la propiedad » url » undefined
    • Genial 😀 La segunda solución funciona bien, Gracias. ¿Puede por favor explicar la respuesta así? Me refiero a ¿qué activo:true indica cuando ya estamos utilizando currentWindow:true? también, lo que exactamente va a ser el contenido de las fichas[] ?
    • Usted puede verificar developer.chrome.com/extensions/tabs.html#method-query para más detalles sobre los parámetros de la función.
    • Nota: Este ya no necesita la tabs permiso. Si inicia un clic en el botón de la extensión de, activeTab permiso es suficiente.
    • tabs es tan pesada permiso! Considere el uso de: activeTab.
    • El SEGUNDO funciona para mí. Gracias.

  2. 29

    El uso de javascript, funcionará si usted no lo está utilizando en la ventana emergente debido a que javascript en la ventana dirección url de retorno de emergente por lo tanto, en la ventana emergente, usted tiene que usar Chrome ficha de la API y establecer permisos en Chrome manifiesto.

    chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
        console.log(tabs[0].url);
    });

    Así que mejor forma es usar el Chrome pestaña API

    • Esta es la más relevante de respuesta y debe ser actualizada como la mejor respuesta.
    • Estoy teniendo un momento muy difícil averiguar cómo tenedor fichas[0].url de esta devolución de llamada, aunque. Debe/Puede ser utilizado en la consulta de la función de devolución de llamada?
    • Amablemente elaborar lo u r tratando de lograr y pegar aquí el código para que podamos resolver de manera eficiente juntos.
    • Nevermind. Yo estaba tratando de establecer una variable global que ya fue declarada en mi popup.js a la tab[0].url. Se volvía indefinido. He optado en lugar de poner directamente la consulta() en mi ventana.onload y hacer una inyección de HTML, doc quiero (para mostrar la dirección url). Funciona.
  3. 6

    Usted necesita tener cuidado con lo que quieres decir por «ficha actual». Si el usuario tiene más de una ventana abierta, cada uno de ellos con varias pestañas, Chrome define la «ventana activa» como el que se está ejecutando el contenido del script que hace uso de la chrome.tabs API. Eso me pasó a mí y lo resuelto por la referencia a la «actual» de la ventana, pero el última enfocada:

    chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
        //Do something
    });

    Referencias:

    https://developer.chrome.com/extensions/windows#current-window
    https://developer.chrome.com/extensions/tabs#method-query

    Espero que ayude!

    • Esto debe ser aceptado respuesta
  4. 1

    NO uso getSelected

    Como por la Chrome Developer Docs:
    chrome.tabs.getSelected ha sido obsoleto desde Chrome ver.33

    Lugar uso:

    chrome.tabs.query({active:true}, __someCallbackFunction__) como Musa de la segunda sugerencia.

  5. 0

    ACTUALIZACIÓN: este método está ahora en desuso, así que por favor no lo use

    En mi caso cualquier anteriormente no ha trabajado. Así que he usado este:

    chrome.tabs.getSelected(null, function(tab) {
        console.log(tab.url)
    })

    y funcionó muy bien! Espero que ayude.

    • getSelected() ha quedado obsoleto y no debería utilizarse. chrome.las pestañas.consulta({activo: true, currentWindow: true}, function (arrayOfTabs) { console.log(fichas[0].la dirección url); }); es la forma actual para obtener la ficha actual (y URL).
  6. 0

    esto funcionó para mí darle una oportunidad

    chrome.tabs.query({
    active: true,
    lastFocusedWindow: true
    }, function(tabs) {
    //and use that tab to fill in out title and url
    var tab = tabs[0];
    console.log(tab.url);
    alert(tab.url);
     });
  7. -1

    El método más simple:

    de la consola.log(‘url de la página actual’ + ventana.la ubicación)

    • Esto no funciona como ventana.ubicación en una extensión devuelve una cadena aleatoria que la extensión ha sido dado.
    • de la ventana.ubicación.href le dará la extensión de chrome de html URL de la ficha de URL.

Dejar respuesta

Please enter your comment!
Please enter your name here