I'm creating a Chrome extension and one of the actions is to reload the current tab after changing the URL. This is the code below:
submitChoices.addEventListener("click", async () => {
let [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
let url = fieldChoices(tab); // This returns the new Url based on some choices
chrome.tabs.query({ active: true, currentWindow: true }, function () {
chrome.tabs.update(tab.id, { url });
chrome.tabs.onUpdated.addListener(function () {
chrome.tabs.reload(); // Issue seems to be here
});
});
});
The problem I'm having is that the chrome.tabs.reload(); seems to be stuck in a loop. The tab keeps on reloading and only stops after I change tabs or switch focus to another window/app. Any tips? Thank you!
Your code is a bit confusing, with many parts you don't need. It keeps reloading because the onUpdated listener starts again every time. But you don't need the listener at all, and you don't need the second tabs.query that you are not even using:
submitChoices.addEventListener("click", async () => {
let [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
let url = fieldChoices(tab); // This returns the new Url based on some choices
chrome.tabs.update(tab.id, { url });
});