首页 > 解决方案 > 如何在继续运行代码的同时通过更改 URL 转到新页面?

问题描述

我有一个 chrome 扩展程序,可以选择页面上的所有项目并逐个单击它们。然后,它单击各个项目页面上的其他几个按钮。

allItems = document.getElementsByClassName('items');
for (let i = 0; i < allItems.length; i++ ) {
    let currentItem = allItems[i];
    currentItem.click();

    // PAUSE, then on the next page click on edit button
    editButton.click();

    // PAUSE, then on the next page click on save button
    saveButton.click();

    // PAUSE, then go back to the home page and click on next item
    homePageButton.click();
}

这一切都很好(我使用异步函数在页面加载之间留下暂停)。

但现在我想通过更改 URL 来访问每个项目页面,而不是使用 .click() 单击每个项目。

我的问题是,如果我使用 window.open 之类的东西,页面会重新加载并且代码会停止执行。

如何通过更改 URL 导航到新页面,并且仍然允许我的代码像使用 .click() 单击项目时一样执行?

标签: javascriptgoogle-chrome-extensionhtml5-historyhistory.js

解决方案


如果您想保留来自多个选项卡的数据或结果,后台脚本可能是个好地方。让内容脚本执行点击、数据收集等操作,并将数据发送回后台脚本来存储数据。


推荐阅读