2011-11-29 60 views
0

我使用chrome.tabs.executeScript注入的功能作爲內容腳本

在注入programaticaly我可以通過如任一

chrome.tabs.executeScript(null, { code: "alert('hello world');"}); 

chrome.tabs.executeScript(null, { file: example.js}); 

我注射按鈕按內容腳本可以傳入一個字符串或一個文件來執行。有沒有辦法注入一個函數。

chrome.tabs.executeScript(null, {code: function1}); 

function function1() { alert("hi");} 

回答

2

我認爲你不能注入一個內容腳本在後臺頁面定義的函數。但是,您可以獲取函數源代碼並立即調用它。

function hello() { alert("hi"); } 

chrome.tabs.executeScript(null, { code: "(" + hello.toString() + ")()" }); 
+0

完美。謝謝。 – Bnicholas

0

如何將函數定義嵌入代碼片段本身?

chrome.tabs.executeScript(null, { 
    code: "function function1() { alert('hi'))}; 
      function1();" 
}); 
+0

這個想法是在後臺頁面中定義多個函數,並只注入需要的函數。這與注入一個聲明所有函數的文件相同。 – Bnicholas