2012-11-15 61 views
1

我想構建一個Chrome擴展,它使用注入的JS從我的服務器將HTML插入到我的服務器的Facebook頁面中。然後,我希望能夠從HTML中調用Javascript函數,並在Facebook頁面上執行它。問題是,當我從HTML文件調用它時,我放入fhrun.js文件的JS函數不會在頁面上運行。這可能與事實沒有任何注入JS的功能可以從Facebook上的JS控制檯執行。從Chrome擴展中運行注入的JS函數AJAX加載頁面

這裏是Chrome劇本我在background.js文件中運行:

chrome.tabs.executeScript(null, 
    {file: "fhrun.js", allFrames: false, runAt: "document_start"}, 
    function(){ 
     //JS inserted 
    } 
); 

這是一個簡化fhrun.js(它也包含jQuery的):

function testFunction(){ 
console.log("Test function is working."); 
} 

$("#facebookDiv").load("https://path.to.my.server/ajax.html"); // this works great btw 

這是阿賈克斯。 HTML:

<a href="#" onclick="testFunction();">Click Me</a> //link doesn't work 

當我點擊「點擊我」,它應該調用testFunction();這是具有成爲JS裏面en注入頁面。但事實並非如此。它甚至不會拋出錯誤。我也嘗試將testFunction();放入background.js文件中,這也不起作用。

有什麼建議嗎?

+0

allFrames和runAt應該是all_frames和run_at。您的問題描述不夠清晰,您是否可以創建並共享最小的演示來顯示您的問題(包括'manifest.json')?你知道執行上下文的區別嗎(參見[這個答案])(http://stackoverflow.com/questions/9915311/chrome-extension-code-vs-content-scripts-vs-injected-scripts/9916089#9916089 ))? –

回答

1

內嵌Java腳本不會爲JS注射工作,使用事件綁定,而不是

例:

的onload =函數(){

的document.getElementById( 「XX」)點擊=樂趣;

};

相關問題