所以,这是我的背景脚本:
const state = {
inActivity = false
};
const setActivity = (payload, sender, callback) => {
state.inActivity = payload.inActivity;
}
chrome.runtime.onMessage.addListener(function(payload, sender, callback) {
if (payload.fn in this) {
this[payload.fn](payload, sender, callback);
}
});
到目前为止,我试图做的事情是通过从内容脚本发送消息来设置/更改 inActivity 属性(state.inActivity)的值,如下所示:< / p>
chrome.runtime.sendMessage({
fn: 'setActivity',
inActivity: true
});
但是,我无法找出状态的范围或状态的存储位置,因此我可以对其进行引用。
到目前为止,this[setActivity] === undefined
,window.setActivity === undefined
和globalThis.setActivity === undefined
。
因此,问题是:如何使用从内容脚本传递的字符串参数调用 setActivity
或任何其他函数? >
从字符串this[payload.fn](...)
(在内容脚本的消息中作为参数传递)中调用它很重要,因为它不是唯一可用的消息。这样,我可以为所有方法使用一个通用的侦听器。