2016-11-12 110 views
0

我想從chrome擴展中調用這個js fuctnion MC.showLevelUp(100,94,95)如何從Chrome擴展中調用頁面的JavaScript函數?

我沒有使用Chrome擴展的經驗,所以我不知道該怎麼做。 我試圖像往常一樣:

document.getElementById("skin_tRex").addEventListener("click", MC.showLevelUp(100,94,95)) 

但顯然這是行不通的。

你能告訴我我做錯了什麼,我應該怎麼做!提前致謝!

+1

1. addEventListener需要一個函數類型參數,而不是函數調用2.那個MC.showLevelUp定義了哪裏?你的內容腳本?頁腳本? – wOxxOm

+0

該功能是由網站定義的,我想從擴展 –

+0

請參閱[構建Chrome擴展 - 使用內容腳本在頁面中注入代碼](// stackoverflow.com/a/9517879)和[如何訪問網頁DOM而不是擴展頁面DOM?](// stackoverflow.com/a/4532567) – wOxxOm

回答

1

在chrome擴展中,代碼在沙箱環境中運行,所以任何事件偵聽器都不適用於主頁面。

從我的理解,你想要一個按鈕點擊觸發並在網頁上運行一個功能。最好的辦法是將代碼注入頁面。

document.getElementById("skin_tRex").addEventListener("click", runScriptOnPage) 

function runScriptOnPage() { 
    var actualCode = 'MC.showLevelUp(100,94,95)'; 
    var script = document.createElement('script'); 
    script.textContent = actualCode; 
    (document.head||document.documentElement).appendChild(script); 
    script.remove(); 
} 
相關問題