Дополнение Firefox для получения содержимого тела вкладки - PullRequest
1 голос
/ 20 декабря 2011

Привет всем, у меня есть вопрос о дополнении Firefox:

Как я могу получить содержимое тела, например, на вкладке.

var content = require("tabs").activeTab.documentContent.body.innerHTML;

Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 20 декабря 2011

SDK надстройки не разрешает прямой доступ к содержимому вкладки - идея заключается в том, что надстройка и вкладка могут в конечном итоге оказаться в разных процессах. Что вы делаете, это вставляете скрипт контента во вкладку, чтобы получить необходимые данные, что-то вроде этого:

var tab = require("tabs").activeTab;
tab.attach({
  contentScript: "self.postMessage(document.body.innerHTML);",
  onMessage: function(data)
  {
    console.log("Tab data received: " + data);
  }
});
1 голос
/ 27 марта 2015

Вы можете попробовать это:

var tabs = require("sdk/tabs");
var { getTabForId, getTabContentWindow } = require ("sdk/tabs/utils");
var tab = require("tabs").activeTab;
var window = getTabContentWindow (getTabForId(tab.id));
var content = window.document.body.innerHTML;

Но, может быть, этот ответ лучше.

0 голосов
/ 20 декабря 2011

Вы можете получить тело выбранной на данный момент вкладки, используя следующее (после DOMContentLoaded):

gBrowser.contentDocument.body.innerHTML

Примечание : работает только в стандартном расширении, а не в SDK.

...