2014-09-02 185 views
3

是否可以將匿名函數傳遞給chrome API executeScript調用?目前我有以下代碼:可能將匿名函數或引用傳遞給executeScript函數?

chrome.tabs.executeScript(tab.id, {code: "document.body.appendChild(document.createElement('p'));"}) 

有沒有辦法將我想執行的代碼作爲函數引用而不是字符串傳遞?我知道文件選項,但我更願意只傳遞一個對bg.js中已經提供的函數的引用。我不喜歡字符串,因爲在編輯器中我失去了語法突出顯示/格式化,還有其他一些原因。

回答

2

你能代表你的函數作爲一個字符串:

var f = function(){ /* do stuff */ } 
chrome.tabs.executeScript(tab.id, {code: "("+f.toString()+")();"}); 

小心,功能仍然需要自包含的(不使用任何非局部變量),因爲它會在不同的執行上下文。

+0

這肯定是開玩笑的人..當然,這個問題真的有解決辦法嗎?怎麼樣傳遞對象? – Pacerier 2017-08-06 03:18:54

+0

@Prier這可能取決於你的問題,而不是原來的問題。如果完全不同,請提出一個新問題。 – Xan 2017-08-06 06:30:07

相關問題