如何在继续运行代码的同时通过更改 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() 单击项目时发生的那样?

解决方法

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...