Автоматический запуск Chrome Extension - PullRequest
5 голосов
/ 19 апреля 2011

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

Вот так выглядит мой манифест

{
  "name": "Find all first",
  "version": "1.0",
  "description": "Find all Linkes",
  "browser_action": {
    "default_icon": "icon.png",
    "popup": "popup.html"
  },
  "icons": {
    "16": "icon.png",
    "128": "icon-big.png"
  },
  "permissions": [
    "tabs",
    "http://*/*",
    "https://*/*"
  ],
  "content_scripts": [ {
    "matches": ["http://*/*", "https://*/*"], 
    "js": ["content.js"]
  }]
}

Затем я вызываю это в моем popup.html

chrome.tabs.executeScript(null, {file: 'content.js'}, function() {
  console.log('Success');
});

1 Ответ

7 голосов
/ 20 апреля 2011

Поскольку в манифесте определено contents_scripts, content.js запускается как скрипт содержимого каждый раз, когда загружается страница, соответствующая вашему matches (то есть, любой веб-странице действительно).

Чтобы запускать content.js на странице только тогда, когда пользователь нажимает кнопку «Действие страницы», удалите из манифеста раздел content_scripts, чтобы сценарии не запускались автоматически. Затем при нажатии кнопки «Действие страницы» popup.html выполнит content.js, как и должно быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...