Почему window.open () и window.close () не работают в расширении? - PullRequest
1 голос
/ 21 октября 2019

Хорошо, сейчас я пытаюсь автоматизировать некоторые задачи с помощью расширения Chrome. Вот все мои файлы, проблема в моих файлах content.js:

manifest.json:

{
  "manifest_version": 2,

  "name": "Click to execute",
  "description": "Execute script after click in popup.html (chrome extension) http://stackoverflow.com/questions/20764517/execute-script-after-click-in-popup-html-chrome-extension.",
  "version": "1.0",

  "icons": {
    "48": "icon.png"
  },

  "permissions": [
    "tabs", "<all_urls>"
  ],

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  }
}

popup.html:

<!DOCTYPE html>
<html>
  <body style="width: 300px">
    Open <a href="http://stackoverflow.com" target="_blank">this page</a> and then 
    <button id="clickme">click me</button>
    <script type="text/javascript" src="popup.js"></script>
  </body>
</html>

popup.js:

function hello() {
  chrome.tabs.executeScript({
    file: 'content.js'
  }); 
}

document.getElementById('clickme').addEventListener('click', hello);

content.js:

let firstCl = function(){
document.getElementsByClassName('nav-link')[6].click();
};

let openWin = function(){
    window.open('www.google.com');
};

let closeWin = function(){
    window.close()
}


setTimeout(firstCl, 3000);
setTimeout(openWin, 6000);
setTimeout(closeWin, 9000);

Я пытаюсь щелкнуть ссылку, затем открыть новую вкладку на google.com, подождать некоторое время и автоматически закрыть эту вкладку. ,По какой-то причине window.close ();Метод inst делает что угодно, Google открывает, а затем просто остается открытым. Есть идеи?

1 Ответ

0 голосов
/ 21 октября 2019

Итак, две вещи, которые я вижу, помогут вам.

  1. Если вы хотите открыть новую вкладку, вам нужно будет добавить '_blank', иначе она просто возьмет на себятекущее окно. поэтому window.open('www.google.com', '_blank');

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

let theWindow;

let firstCl = function() {
  document.getElementsByClassName('nav-link')[6].click();
};

let openWin = function() {
  theWindow = window.open('www.google.com', '_blank');
};

let closeWin = function() {
  theWindow.close()
}

setTimeout(firstCl, 3000);
setTimeout(openWin, 6000);
setTimeout(closeWin, 9000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...