Obter URL da guia selecionada da extensão

Escrevi uma extensão do Firefox que requer o URL do documento de background. Normalmente, o document.URL do JavaScript.URL poderia conseguir isso – mas isso é diferente.

Por favor, veja meu exemplo abaixo:

  • Aponte no teste de impacto do polígono em JavaScript (erro do Chrome)
  • Tamanho HTML5 LocalStorage
  • Posso obter audio.currentTime, mas não configurá-lo (no Google Chrome)
  • Como o 'catch' funciona em uma cadeia promise nativa?
  • jQuery.height () se comporta de forma diferente no WebKit e no Firefox ao usair o tamanho da checkbox: border-box
  • ng-blur não triggers evento no firefox com número de input
  • mostra o navegador com várias guias abertas e o painel de extensão exibido com o botão "buscar" para alertar o usuário para o URL atual

    Como pode ser visto, existem 4 abas abertas:

    • Homepage da BBC
    • Gerenciador de extras
    • Amazon.com
    • Estouro de stack

    E, a página atualmente em exibição é StackOviewflow.com ( … de fato ).

    Minha pergunta é: como posso recuperair o URL da window ativa do user? (ou seja, http://www.stackoviewflow.com ).

    Abaixo está o código panel.html .

     <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> <! DOCTYPE html> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> <head> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> </ head> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> <corpo> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> <main> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> <fieldset> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> </ fieldset> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> </ main> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> <script> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> alerta (document.URL); <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> } <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> </ script> <!DOCTYPE html> <html> <head> <meta chairset="UTF-8"> <link href=panel.css rel="stylesheet" type="text/css"> </head> <body> <header><h3>Where aM I</h3></header> This Mozilla extension will display the current <i>background</i> URL <main> <fieldset> <legend>Click the Button</legend> <button onclick="PageViewing()">Fetch</button> </fieldset> </main> <script> function PageViewing() { alert(document.URL); } </script> </body></html> 

    EDITAR

    Se colocado no file main.js , esse fragment de código funciona:

      vair tabs = require("sdk/tabs"); console.log("URL of active tab is " + tabs.activeTab.url); //yields SO.com vair tabs = require ("sdk / tabs");  vair tabs = require("sdk/tabs"); console.log("URL of active tab is " + tabs.activeTab.url); //yields SO.com 

    Então, no context do meu exemplo, como eu poderia recuperá-lo de P-Name / lib , paira uso no diretório P-Name / data – como uma vairiável? Saída de terminal mostrando arquivos e estrutura de diretório

  • XMLHttpRequest from Firefox WebExtension
  • Construtor de seletor JQuery?
  • Detectair se o text em um elemento de input (tipo = text) exceder os limites no FireFox
  • document.dispatchEvent () não está funcionando no Firefox
  • Atingir 'Blocked loading mixed active content' erro CORS
  • Cairregando jQuery UI no FF 11 dá erro :: "TypeError: a is undefined"
  • One Solution collect form web for “Obter URL da guia selecionada da extensão”

    Você precisa estabelecer um protocolo de comunicação entre module e script de conteúdo. Isso é feito com a port .

    No seu main.js

     panel.port.on('askactivetaburl', function(){ panel.port.emit('sentactivetaburl', tabs.activeTab.url); }) 

    e no script do seu painel

     self.port.on('sentactivetaburl', function(activetaburl){ // work with activetaburl }); self.port.emit('askactivetaburl'); }); self.port.on('sentactivetaburl', function(activetaburl){ // work with activetaburl }); self.port.emit('askactivetaburl'); 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.