Я пытаюсь создать расширение с большим количеством обработки данных, но почему-то не могу связать простую кнопку с чем-то. Также, если вы знаете какие-либо ресурсы, которые будут полезны для меня в будущем, я был бы признателен.
function helloworld() {
alert("Hello World!");
}
Эта команда из popup.js. У меня также есть background.js для слушателей, но я не знаю, как их использовать.
С наилучшими пожеланиями
решение1
Причина, по которой это не работает, заключается в том, что встроенный Javascript не разрешен на страницах расширений.
Встроенный JavaScript не будет выполнен. Это ограничение запрещает как встроенные
<script>
блоки, так и встроенные обработчики событий (например,<button onclick="...">
).Первое ограничение уничтожает огромный класс атак межсайтового скриптинга, делая невозможным случайное выполнение скрипта, предоставленного вредоносной третьей стороной. Однако оно требует от вас писать свой код с четким разделением между контентом и поведением (что вы, конечно, должны делать в любом случае, верно?)
Вы можете добавить обработчик onclick с помощью addEventListener
функции; в этом разделе документации Chrome приведен пример того, как это сделать:
https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution