MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Janelas

Stable

Enumera e examina janelas do navegador abertas, abre novas janelas, e escuta por eventos de janela.

Uso

O módulo windows fornece funções básicas para trabalhar janelas de navegador. Com este módulo, você pode:

Janelas Privadas

Se seu add-on não optou pela navegação privada, então você não verá qualquer janela de navegação privada. Janelas de navegação privada não aparecerão na propriedade browserWindows, você não receberá qualquer evento de janela, e você não será capaz de abrir janelas privadas.

Para aprender mais sobre navegação privada, como optar pela navegação privada, e como suportar navegação privada dirija-se à documentação para o módulo private-browsing.

Converção para as Janelas Chrome

Para converter do objeto BrowserWindow usando nesta API para o objeto chrome window usado na API window/utils, use a função viewFor() expotada pelo módulo viewFor().

Para converter de vola, de uma janela chrome para um objeto BrowserWindow, use a função  modelFor(), exportada pelo módulo modelFor.

Aqui está um exemplo convertendo do alto nível BrowserWindow para uma janela chrome, e então voltando para o outro modo:

var { modelFor } = require("sdk/model/core");
var { viewFor } = require("sdk/view/core");

var browserWindows = require("sdk/windows").browserWindows;

function convertToChromeAndBack(browserWindow) {
  // get the chrome window for this BrowserWindow
  var chromeWindow = viewFor(browserWindow);
  // now we can use the chrome window API
  console.log(chromeWindow.document.location.href);
  // -> "chrome://browser/content/browser.xul"

  // convert back to the high-level window
  var highLevelWindow = modelFor(chromeWindow);
  // now we can use the SDK's high-level window API
  console.log(highLevelWindow.title);
}

browserWindows.on("open", convertToChromeAndBack);

Note que acessar diretamente os objetos chrome de baixo nível significa que você não está protegido pelas garantias de compatibilidade das APIs de alto nível do SDK. Em particular, dependendo de o que você faz com estes objetos, seu código não deve trabalhar com multiprocess Firefox.

Globais

Funções

open(options)

Abre uma nova janela.

var windows = require("sdk/windows").browserWindows;

// Open a new window.
windows.open("http://www.example.com");

// Open a new window and set a listener for "open" event.
windows.open({
  url: "http://www.example.com",
  onOpen: function(window) {
    // do stuff like listen for content
    // loading.
  }
});

Retorna a janela que foi aberta:

var windows = require("sdk/windows").browserWindows;
var example = windows.open("http://www.example.com");

require("sdk/ui/button/action").ActionButton({
  id: "read",
  label: "Read",
  icon: "./read.png",
  onClick: function() {
    example.close();
  }
});

Este exemplo usa a API action button, que está disponível somente do Firefox 29 em frente.

Parâmetros

options : object
Opções requeridas:

Name Type  
url string

String com a URL a ser aberta na nova janela. É uma propriedade necessária.

isPrivate boolean

Boleano que determinará se a nova janela seria privada ou não. Se seus add-ons não suportam navegação privada isto não terá efeito. Veja a documentação sobre private-browsing para mais informação.

Opções opcionais:

Name Type  
onOpen function

Uma função de retorno que é chamada quando a janela está aberta. Isto não significa que o conteúdo da URL foi carregado, somente que a janela por si está inteiramente funcional e suas propriedades podem ser acessadas. Isto é uma propriedade opcional.

onClose function

Uma função de retorno que é chamada quando a janela será chamada. Isto é uma propriedade opcional.

onActivate function

Uma função de retorno que é chamada quando a janela está ativa. Isto é uma propriedade opcional.

onDeactivate function

Uma função de retorno que é chamada quando a janela não está ativa. Isto é uma propriedade opcional.

Retorna

BrowserWindow :

Properties

browserWindows

browserWindows fornece acesso a todas as janelas de navegadores abertas com os objetos BrowserWindow.

var windows = require("sdk/windows");
for (let window of windows.browserWindows) {
  console.log(window.title);
}

console.log(windows.browserWindows.length);

Este objeto emite todos os eventos listados na seção "Eventos':

var windows = require("sdk/windows").browserWindows;

// add a listener to the 'open' event
windows.on('open', function(window) {
  myOpenWindows.push(window);
});

// add a listener to the 'close' event
windows.on('close', function(window) {
  console.log("A window was closed.");
});

// add a listener to the 'activate' event
windows.on('activate', function(window) {
  console.log("A window was activated.");
});

// add a listener to the 'deactivate' event
windows.on('deactivate', function(window) {
  console.log("A window was deactivated.");
});

A janela ativa atual é data pelo BrowserWindows.activeWindow:

var windows = require("sdk/windows").browserWindows;

windows.on('activate', function(window) {
  console.log("A window was activated.");
  var activeWindowTitle = windows.activeWindow.title;
  console.log("Active window title is: " + activeWindowTitle);
});

Eventos

open

Evento emitido quando uma nova janela é aberta. Isso não significa que o conteúdo foi carregado, somente que a janela do navegador por si só está inteiramente visível ao usuário.

Argumentos

Window : Escutas são passadas para o objeto window que desencadeou o evento.

close

Evento emitido quando uma janela é fechada. Você não pode sempre confiar na recepção do evento close para todas as janelas abertas. Em particular, se o usuário fechar o navegador de forma preciptada o que pode fechar o add-on antes das janelas serem fechadas.

Argumentos

Window : escutas são passadas para o objeto window lançou o evento.

activate

Evento emitido quando uma janela inativa é tornada ativa.

Argumentos

Window : Escutas são passadas para o objeto window que torna ativa.

deactivate

Evento emitido quando a janela ativa se torna inativa.

Arguments

Window : Escutas são passadas para o objeto window que se tornou inativa.

BrowserWindow

Uma instância BrowserWindow representa uma única janela aberta. Elas podem ser recuperadas da propriedade browserWindows exportadas pelo módulo.

var windows = require("sdk/windows").browserWindows;

//Print how many tabs the current window has
console.log("The active window has " +
            windows.activeWindow.tabs.length +
            " tabs.");

// Print the title of all browser windows
for (let window of windows) {
  console.log(window.title);
}

// close the active window
windows.activeWindow.close(function() {
  console.log("The active window was closed");
});

Métodos

activate()

Torna a janela ativa, que focará aquela janela e trará ela para o primeiro plano.

close(callback)

Fecha a janela.

Parâmetros

callback : function
Uma função chamada quando a janela termina seu processo de fechamento. É um argumento opcional.

Propriedades

title

O título atual da janela. Normalmente o título da tab ativa, mais um identificador da app. Esta propriedade é somente leitura.

tabs

Uma lista ao vivo das tabs na janela. Esse objeto tem as mesma interface da API tabs, exceto que ele contem somente as tabs nesta janela, não todas as tabs em todas as janelas. Esta propriedade é somente leitura.

Etiquetas do documento e colaboradores

Etiquetas: 
 Colaboradores desta página: Pheanor
 Última atualização por: Pheanor,