Debugowanie skryptów zawartości dla rozszerzenia Chrome
Witaj! Zagłębiam się w świat rozszerzeń Chrome i mam pewne problemy z obniżeniem ogólnego przepływu pracy. Wygląda na to, że Google ostatnio przerzuciło się na mocno promujące strony zdarzeń zamiast przechowywać wszystko w background.js i background.html. Biorę część tego, co oznacza, że powinniśmy przekazać większość logiki rozszerzenia do skryptu treści.
WPodkład Google Event Page, mają skrypt zawartości wymieniony w pliku manifest.json. Ale w ich rozszerzeniu przykładowym strony zdarzenia jest on wprowadzany przez ten blok kodu w background.js:chrome.tabs.executeScript(tab.id, {file: "content.js"}, function() { });
Jakie są zalety robienia tego w jedną stronę?
Mój kodIdę dalej z programowym sposobem wstrzykiwania skryptu treści, jak przykład Google.
manifest.json{
"manifest_version": 2,
"name": "Test",
"description": "Let's get this sucker working",
"version": "0.0.0.1",
"permissions": [
"tabs",
"*://*/*"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_icon": "icon.png"
}
}
background.jschrome.browserAction.onClicked.addListener(function() {
console.log("alert from background.js");
chrome.tabs.executeScript({file: "jquery-2.0.2.min.js"}, function() {
console.log("jquery Loaded");
});
chrome.tabs.executeScript({file: "content.js"}, function() {
console.log("content loaded");
});
});
content.jsconsole.log('you\'r in the world of content.js');
var ans = {};
ans.createSidebar = function() {
return {
init: function(){
alert("why hello there");
}
}
}();
ans.createSidebar.init();
Jestem w stanie zdobyć pierwsze 3console.log
instrukcje do wyświetlenia w debuggerze strony tła. Potrafię także wyświetlić alert z content.js na dowolnej stronie internetowej. Ale nie mogę zobaczyćconsole.log
z content.js, ani nie jestem w stanie wyświetlić żadnego z JS z content.js. Próbowałem zajrzeć do sekcji „skrypty treści” na karcie Źródła debugera strony w tle. Kilka innych postów na temat SO zasugerowało dodaniedebugger;
oświadczenia, żeby to pokazać, ale nie mam szczęścia z niczym. Najbliższe rozwiązanie, jakie widziałem, toten post, ale odbywa się poprzez wyświetlenie skryptu treści w manifeście.
Każda pomoc byłaby doceniana. Dzięki!