Расширение Firefox: не работает файл JavaScript, включенный через тег script - PullRequest
5 голосов
/ 06 мая 2019

Основываясь на примере из MDN , я создал собственное расширение, которое отображает просто сообщение "привет".Я включил файл с именем «popup.js» через тег.Но этот файл не выполняется.
Это мой manifest.json файл:

{
  "manifest_version": 2,
  "name": "Ext",
  "version": "1.0",
  "description": "Shows a hi message.",
  "icons": {
    "48": "icons/ff.jpg"
  },
  "permissions": ["tabs"],
  "browser_action": {
    "default_icon": "icons/toggle-off.png",
    "default_title": "EXT",
    "default_popup": "popup/popup.html"
  }
}

Это мой popup.html файл:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>Hi</h2>
<script src="popup.js"></script>
</body>
</html>

Тамэто только одна строка в моем файле popup.js.То есть

console.warn("This is a warning");

Но я ничего не вижу в консоли.Когда я нажимаю на значок расширения, всплывающее окно отображается правильно.
Я не знаю, чего здесь не хватает.Любая помощь приветствуется!

1 Ответ

0 голосов
/ 06 мая 2019

Наконец-то я выяснил, в чем была проблема. Чтобы выполнить код из файла js, включенного через тег, вам нужно указать этот код в browser.tabs.executeScript, и в моем файле manifest.json есть ошибка. Я должен указать разрешение как activeTab вместо tabs.
Итак, мой измененный manifest.json файл:

{
  "manifest_version": 2,
  "name": "Ext",
  "version": "1.0",
  "description": "Shows a hi message.",
  "icons": {
    "48": "icons/ff.jpg"
  },
  "permissions": ["activeTab"],
  "browser_action": {
    "default_icon": "icons/toggle-off.png",
    "default_title": "EXT",
    "default_popup": "popup/popup.html"
  }
}

и мой popup.js файл становится:

browser.tabs.executeScript({code: `console.warn("This is a warning")`});

Подробнее см. документы .

...