Размещено: 2023-12-08 02:58:17

Теги: расширения

КНОПКА ПЕРЕХОДА НА СТАТИЧЕСКИЕ СТРАНИЦЫ В РАСШИРЕНИИ

Если надо в popup.html в расширении сделать кнопку перехода на другую статическую страницу в расширении (page.html), получить url расширения, то необходимо создать на popup.html кнопку с определенным id, затем прикрепить js в котором будет прописано что происходит при нажатии этой кнопки. Потому как в самом popup.html никакие сприпты и атрибуты onclick прикреплять запрещено. В итоге в popup.html:

<!DOCTYPE html>
<html>
  <head>
      <title>TITLE_RASHIRENIE</title>
      <link rel="stylesheet" href="css/popup.css" />
      <meta charset="UTF-8">
  </head>
  <body>
      <h1>H1_RASHIRENIE</h1>
        <button id="wopen">PEREJTI</button>
      <script src="js/popup.js"></script>
  </body>
</html>

и скрипт popup.js:

document.getElementById('wopen').onclick=function(){window.open(chrome.runtime.getURL('page.html'))}

При этом chrome.runtime.getURL('page.html') - выдает путь по которому установлено расширение на компьютере пользователя в виде url и добавляет к нему адрес нашей статической страницы.

При нажатии на кнопку на popup.html происходит открытие страницы chrome-extension://тут_код_расширения/page.html. В манифесте нигде не надо прописывать ничего про popup.js

При этом звуки, скрипты и картинки (наверно) можно просто так прикреплять и они будут работать.

Если задача сразу при нажатии на ярлык расширения перевести пользователя на статическую страницу, то можно написать popup.html:

<!DOCTYPE html>
<html>
<head>
<script src="popup.js"></script>
</head>
<body>
</body>
</html>

а в popup.js:

window.open(chrome.runtime.getURL('page.html'));
window.close();

либо не указывать popup в манифесте, а как-то (?) отслеживать событие включения расширения в background.js.

Все события жизненного цикла расширения находятся в chrome.runtime API и на данный момент их всего 5:


На эту страницу чаще всего попадают по запросам: