【发布时间】:2023-02-22 21:36:59
【问题描述】:
有没有办法停止chrome.scripting.executeScript?
我有这个代码
const onClick = () => {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
const activeTabId = tabs[0].id;
chrome.scripting.executeScript({
target: { tabId: activeTabId },
args: [DURATION],
func: script,
});
});
// some code...
}
我从 2 天开始就在整个网络上搜索,但我无法找到一种方法来停止用户交互中的这个脚本。
我发现的一种方法是在用户交互时传递状态,但它会再次触发脚本。请看下面的代码
function Popup() {
const [isActive, setActive] = useState(false);
const [timer, setTimer] = useState(0);
const [stop, setStop] = useState(false);
const buttonRef = useRef();
const onClick = () => {
setStop((x) => !x); // change
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
const activeTabId = tabs[0].id;
chrome.scripting.executeScript({
target: { tabId: activeTabId },
args: [DURATION, stop], // passing the state here
func: script,
});
});
....
onClick 来自将状态 stop 从 false 更改为 true 的弹出窗口。但问题是这个切换再次调用脚本,请参阅下面的onClick(开始/停止连接)按钮
当点击这个按钮停止时,我需要想办法停止执行脚本。 对此有任何提示或想法表示赞赏。
【问题讨论】: