Как заменить всплывающее окно другой страницей в расширении Chrome? - PullRequest
0 голосов
/ 27 ноября 2018

Я создал расширение, которое работает в Firefox.Я изменил его для Google Chrome, но он не работает.Когда я нажимаю на значок расширения, появляется всплывающее окно с двумя опциями меню.Но когда я нажимаю на любую из этих ссылок, ничего не происходит.Если я нажимаю правую кнопку мыши на любой из этих ссылок и выбираю открыть в новой вкладке, то этот HTML-файл отображается в новой вкладке.Если я нажму на ссылки в этой новой вкладке, файл php будет открыт и работает, поэтому я думаю, что window.location.replace не работает в расширении crome.

У кого-нибудь есть идеи, как я могу решить эту проблему?

manifest.json

{
"browser_action": {
"default_icon": {
  "48": "images/startlapom-48.png",
  "96": "images/startlapom-96.png"
},
"browser_style": true,
"default_title": "Startlapom",
"default_popup": "managestartlapom.html"
},
"description": "Oldal hozzáadása, levétele a Startlapom oldalam(ra/ról)",
"manifest_version": 2,
"name": "Startlapom",
"permissions": ["tabs"],
"version": "1.0"
}

managestartlapom.html

<!DOCTYPE html>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Startlapom</title>
    <link rel="stylesheet" href="managestartlapom.css"/>
    <link rel="stylesheet" href="https://startlapom.eu/startlapom.css" type="text/css" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
  </head>

  <body class="addon-body">
    <div id="startlapom-addon">
      <div class="panel">
        <a class="addon-link" href="#" id="startlapom-add">Oldal hozzáadása a Startlapomhoz</a><br />

        <div class="panel-section-separator"></div>

        <a class="addon-link" href="#" id="startlapom-remove">Oldal levétele a Startlapomról</a><br />
      </div>
    </div>
    <script src="managestartlapom.js"></script>
</body>

</html>

managestartlapom.js

document.getElementById('startlapom-add').onclick = function() {
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
    window.location.replace('https://startlapom.eu/addon.php?url='+encodeURIComponent(tabs[0].url)+'&title='+encodeURIComponent(tabs[0].title)+'&reason=ADD');
      });
    }

document.getElementById('startlapom-remove').onclick = function() {
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
    window.location.replace('https://startlapom.eu/addon.php?url='+encodeURIComponent(tabs[0].url)+'&title='+encodeURIComponent(tabs[0].title)+'&reason=REM');
      });
    }

1 Ответ

0 голосов
/ 27 ноября 2018

Если вы напишите в своем managestartlapom.js файле:

....
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
  alert(window.location);
  ....... 

}

, вы увидите, что ваш window.location равен

chrome-extension://ext_id_here/managestartlapom.html#

иЯ думаю, что это не тот 1011, который вы хотели бы заменить.(это окно вашего всплывающего меню).Если вы хотите заменить window.location вашей активной вкладки, вы должны использовать chrome.tabs.executeScript в вашем chrome.tabs.query обратном вызове.

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