доступ к текущей HTML-странице из расширения Chrome - PullRequest
12 голосов
/ 08 октября 2011

Я новичок в расширениях Chrome. Я хотел бы создать простое расширение Chrome, которое выскакивает предупреждение с заголовком текущей HTML-страницы. когда я выполняю: alert(document.title), я не получаю его, потому что объект документа принадлежит не странице, а сценарию расширения (это правильно?) Как я могу получить правильный объект документа?

Ответы [ 4 ]

14 голосов
/ 08 октября 2011

Сценарии содержимого - это самый простой способ:

Разверните файл манифеста с помощью этого кода:

...
"content_scripts": [
  {
  "matches": ["http://urlhere/*"],
  "js": ["contentscript.js"]
  }
],
...

Сценарий содержимого (автоматически выполняется на каждой странице, как указано в matches вфайл манифеста):

alert(document.title)

Преимущество использования сценариев содержимого перед методами chrome.extension.* состоит в том, что вашему расширению не требуются страшные разрешения, такие как tabs.См. Также:

5 голосов
/ 08 октября 2011

Вы можете использовать модуль tabs :

chrome.tabs.getCurrent(function(tab) {
    alert(tab.title);
});
1 голос
/ 25 июля 2014

Для того, что вы делаете, все, что вам нужно сделать, это

chrome.tabs.executeScript({
    code: 'alert(document.title)'
})

API chrome.tabs.executeScript позволяет запускать JavaScript на текущей странице, а не в расширении, так что это работает просто отлично, ноесли вы хотите использовать имя страницы позже в более сложном расширении, чем я бы просто сделал то, что сделал pimvdb

0 голосов
/ 27 марта 2017

Я использую это расширение, чтобы сделать похожую вещь:

main.js:

(function(){window.prompt('Page title:', document.title)})()

manifest.json:

{
 "background": {"scripts": ["background.js"]},
 "browser_action": {
 "default_title": "popup_title"
 },
 "name": "popup_title",
 "description": "Display the page title for copying",
 "permissions": [
     "tabs",
     "http://*/*",
     "https://*/*"
 ],
 "version": "1.0",
 "manifest_version": 2
}

background.js:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(tab.id, {file: "main.js"})
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...