2014-01-24 37 views
0

我開發了一個適用於Windows操作系統的google chrome擴展。但這並不與Mac的工作問題,我想查這個問題,我發現功能Chrome擴展程序「executeScript」不適用於mac

chrome.tabs.executeScript 

在Mac上是不行的,這是完全的代碼與Windows不支持Mac工作好。

// The onClicked callback function. 
function onClickHandler(info, tab) { 
       // the problem in injecting code 
       chrome.tabs.executeScript 
       (null,{code:"var activeElm = document.activeElement; var inp_text = activeElm.value; console.log(activeElm.value);"}); 
}; 

chrome.contextMenus.onClicked.addListener(onClickHandler); 

// Set up context menu tree at install time. 
chrome.runtime.onInstalled.addListener(function() { 
    // Intentionally create an invalid item, to show off error checking in the 
    // create callback. 
    console.log("About to try creating an invalid item - an error about " + 
     "duplicate item child1 should show up"); 
    chrome.contextMenus.create({"title": "consoleMe", "id": "child523", "contexts":["selection"]}, function() { 
    if (chrome.extension.lastError) { 
     console.log("Got expected error: " + chrome.extension.lastError.message); 
    } 
    }); 
}); 

提示

我用content_scripts清單文件注射的文件,但它似乎在Mac谷歌瀏覽器沒有啓動。

"content_scripts": [ 
    { 
     "matches": ["http://*/*","https://*/*"], 
     "js" : ["jquery.min.js","fix.js","injscript.js"], 
     "all_frames": false 
    } 
    ], 

操作系統:Mac 10.8山獅 - 谷歌瀏覽器V 32

回答

1

應該有Windows和Mac之間沒有什麼區別。您的兩個設置可能有其他不同之處。

我不清楚上面的JavaScript代碼片段是後臺腳本還是注入內容腳本。你能提供完整的清單,並指出片段屬於哪個文件嗎?

  • 如果它是一個後臺腳本,chrome.tabs.executeScript與空tabId將適用於後臺頁面,這是你所期望不算什麼。相反,傳遞tabId的tab.id。

  • 如果是內容腳本,contextMenus API調用將不起作用,因爲內容腳本不允許使用chrome API(請參閱https://developer.chrome.com/extensions/content_scripts.html)。