Mozilla - как загрузить вкладку с документом, ранее полученным через gBrowser.contentDocument? - PullRequest
0 голосов
/ 03 августа 2011

Я разрабатываю простое расширение Mozilla Firefox (FF 5.0 и выше), и мне нужен способ, с помощью которого я могу получить документ с содержимым на вкладке, например:

<JavaScript function called from XUL document>
var content_1 = gBrowser.contentDocument;

ицель состоит в том, чтобы поместить этот контент снова в другую вкладку, например:

Application.activeWindow.activeTab.contentDocument = content_1;

, но это не работает, поскольку content.document или contentDocument доступны только для чтения.

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

Я также хотел бы найти способ получить содержимое вкладки, включая заполненный текстпользователем в текстовых полях HTML или в любом месте документа, например, перед публикацией текста сообщения на форуме.Я не уверен, что это последнее возможно без необходимости читать память или слишком много усложнять ...

1 Ответ

0 голосов
/ 09 августа 2011

Вы не можете изменить contentDocument, но вы можете изменить содержимое документа. В частности, вы можете заменить корневой узел документа. Это должно сделать:

var targetDoc = Application.activeWindow.activeTab.contentDocument;
var newRoot = targetDoc.importNode(content_1.documentElement, true);
targetDoc.replaceChild(newRoot, targetDoc.documentElement);

Когда я попробовал содержимое этого скопированного документа, включая динамическую информацию, такую ​​как текстовое поле ввода.

...