Chrome Extension Cookies [дубликат]

Чтобы добавить ко всем ответам, печать объекта как строки JSON также является опцией.

Использование Jackson:

ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
System.out.println(ow.writeValueAsString(anyArray));

Использование Gson:

Gson gson = new Gson();
System.out.println(gson.toJson(anyArray));
26
задан Guy Korland 23 February 2013 в 01:19
поделиться

4 ответа

Поскольку сценарий содержания имеет свои собственные ограничения,

chrome.tabs доступен только в фоновых сценариях и всплывающих сценариях.

Если вы хотите использовать chrome.tabs, тогда передайте сообщение от content_script в фоновый скрипт и играть с chrome.tabs.

46
ответ дан Raghvendra Parashar 1 September 2018 в 10:11
поделиться

Проверьте этот ответ также https://stackoverflow.com/a/6718277/449345 Этот файл работал для меня

chrome.tabs.getSelected(null, function(tab){
    console.log(tab);
});
5
ответ дан Community 1 September 2018 в 10:11
поделиться

https://developer.chrome.com/extensions/tabs#method-getSelected показывает

getSelected

chrome.tabs. getSelected (integer windowId, обратный вызов функции) Устаревший с Chrome 33. Используйте tabs.query {active: true}. Получает вкладку, выбранную в указанном окне.

Возможно, вы должны использовать chrome.tabs.query в popup.js , например

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

, перезагрузить расширение и проверить результат в элементе проверки вашего расширения.

результат изображения

код изображения

https://developer.chrome. com / extensions / tabs # type-Tab показывает, что отображается URL-адрес, отображаемый вкладкой. Это свойство присутствует только в том случае, если манифест расширения содержит разрешения «tabs». (Только для того, чтобы напомнить, что кто-то забыл. Я забыл об этом, когда я просто проверил его.)

1
ответ дан 真能逗我笑 1 September 2018 в 10:11
поделиться

Скрипты содержимого имеют ограниченный доступ к API Chrome. Этот доступ не включает API, который вы пытаетесь использовать (например, chrome.tabs). Если вам нужно использовать этот API, вам нужно будет сделать это в фоновом скрипте 1.

Как указано в документации к скрипту в Chrome , API, доступный для скрипта содержимого: [Я разместил устаревшие методы в формате strikethrough]:

Пара перечисленных API устарела и была на некоторое время. Те, которые устарели, переместились в разные места (также перечисленные выше):

Если он официально не устарел, extension.lastError также доступен как runtime.lastError . На этом этапе его обычно называют в этом месте:

Разделите свой расширение в фоновые скрипты и скрипты содержимого

Вам нужно будет отделить свой код от того, что должно быть в фоновом скрипте и что должно быть в сценариях контента, на основе возможностей, доступных для каждого типа скрипт. Скрипты содержимого имеют доступ к DOM веб-страницы, на которую они вводятся, но ограниченный доступ к API расширений. Фоновые сценарии имеют полный доступ к API расширений, но не имеют доступа к содержимому веб-страницы. Вы должны прочитать обзор расширений Chrome Chrome и связанные с ним страницы, чтобы понять, какая функциональность должна располагаться в том типе сценария.

для связи между вашими сценариями контента и фоновыми скриптами. Для этого вы можете использовать передачу сообщений . Это позволяет вам передавать информацию между двумя сценариями для выполнения действий, которые невозможны, используя только один тип скрипта. Например, в вашем скрипте содержимого вам может понадобиться информация, доступная только из одного из других API Chrome, или вам нужно что-то, что может быть выполнено (или только) с помощью одного из других API расширения Chrome. В этих случаях вам понадобится отправить сообщение в фоновый скрипт, используя chrome.runtime.sendMessage() , чтобы сказать, что нужно сделать, при этом обеспечивая достаточную информацию для него чтобы иметь возможность сделать это. Затем ваш фоновый скрипт может вернуть желаемую информацию, если она есть, в ваш скрипт содержимого. В качестве альтернативы вы будете иметь время, когда обработка будет в основном выполняться в фоновом скрипте. Фоновый сценарий может вводить сценарий содержимого или просто сообщение уже введенного сценария, получать информацию со страницы или вносить изменения в веб-страницу.


  1. Фоновый скрипт означает любой скрипт то есть в фоновом контексте. В дополнение к фактическим background скриптам , это включает всплывающие окна и страницы опций и т. Д. Однако единственная страница, на которой вы можете быть уверены, что она всегда доступна для приема сообщений из сценария контента, является вашей фактической background скриптов , определенных в manifest.json . Другие страницы могут быть доступны в некоторых случаях в результате взаимодействия пользователя с браузером, но они недоступны последовательно.

Этот ответ был перемещен из дублирующего вопроса , а затем модифицировано.

5
ответ дан Community 3 September 2018 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: