Chrome会删除我尝试通过sendRequest传递的功能。
function sendQuery() {
var currentQuery = document.getElementById("queries").value;
var request = {
option: "random value",
command: function() {
alert("fire!");
}
};
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, request)
});
}
正如您所看到的,request
包含函数command
,但当我'转储'内容脚本收到的请求时,我得到的一切就是:
request
Object
option: "random value"
__proto__: Object
我也需要传递command
,而不仅仅是option
。在此先感谢帮助我这样做。
编辑:根据Pointy的建议编辑,但问题仍然存在。
答案 0 :(得分:1)
chrome.tabs.sendRequest
的第二个参数是为运输而序列化的JSON。
传递函数的唯一方法是通过第三个参数。此函数作为chrome.extension.onRequest
事件侦听器的第三个参数接收:
function sendQuery() {
var currentQuery = document.getElementById("queries").value;
var request = { option: "random value" };
var command = function() { alert("fire!"); };
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, request, commans);
});
}