是否可以将匿名函数传递给chrome API executeScript调用?目前我有以下代码:
chrome.tabs.executeScript(tab.id, {code: "document.body.appendChild(document.createElement('p'));"})
有没有办法将我想要执行的代码作为函数引用而不是字符串传递?我知道文件选项,但我更喜欢只传递对bg.js中已经提供的函数的引用。我不喜欢这个字符串,因为我在编辑器中丢失了语法高亮/格式化,以及其他原因。
答案 0 :(得分:2)
您可以将函数表示为字符串:
var f = function(){ /* do stuff */ }
chrome.tabs.executeScript(tab.id, {code: "("+f.toString()+")();"});
注意,该函数仍然需要自包含(不使用任何非局部变量),因为它将在不同的上下文中执行。