2012-01-07 103 views
3

我有很多代碼,我只想在用戶單擊擴展名圖標時運行。我寧願不是它運行的每個標籤打開。因此,在清單文件中使用content_scripts條目不是最佳選擇。但是,當我以編程方式注入腳本時,我無法在開發人員工具的腳本列表中看到內容腳本。我現在用內容腳本很好地開發,但在某些時候我想避免它。調試注入的內容腳本

我在各處運行日誌記錄,並執行消息傳遞。所以我非常清楚這些腳本已經成功注入並運行,但它們只是無法顯示在文件列表中。

在代碼中,下面的工作只是花花公子(在清單):

{ 
    // ... 
    "content_scripts": [{ 
     "matches": ["<all_urls>"], 
     "css": ["style/content.css"], 
     "js": [ 
     "closure/goog/base.js", 
     "closure/goog/deps.js", 
     "util.js", 
     "AddressRE.js", 
     // ... 
     "makeRequests.js" 
    ] 
    }] 
}  

執行以下一個onClick做後不:

function executeNextScript(tabId, files, callback) { 
    chrome.tabs.executeScript(tabId, { 
     file: files.pop() 
    }, function() { 
     if (files.length) 
      executeNextScript(tabId, files, callback); 
     else 
      callback(); 
    }); 
}  


function executeScripts(tabId, callback) { 
    var files = [ 
     "closure/goog/base.js", 
     "closure/goog/deps.js", 
     "util.js", 
     // ... 
     "makeRequests.js" 
    ]; 
    executeNextScript(tabId, files.reverse(), callback); 
} 

回答

2

可以使用debugger JavaScript的關鍵字設置代碼中的斷點。

0

我將//@ sourceURL=myscript.js添加到注入的任何腳本中,並且在注入後將其添加到源列表中