Debuggen von Inhaltsskripten für die Chrome-Erweiterung

Allgemeine Fragen

Hallo! Ich tauche in die Welt der Chrome-Erweiterungen ein und habe einige Probleme, den gesamten Workflow zum Stillstand zu bringen. Offenbar hat Google in letzter Zeit die Verwendung von Veranstaltungsseiten stark vorangetrieben, anstatt alles in background.js und background.html zu belassen. Ich gehe davon aus, dass wir den größten Teil Ihrer Erweiterungslogik an ein Inhaltsskript weitergeben sollten.

ImGoogle Event Page Primerist das Inhaltsskript in der Datei manifest.json aufgeführt. In ihrer Beispielerweiterung für die Ereignisseite wird sie jedoch über diesen Codeblock in background.js eingefügt:chrome.tabs.executeScript(tab.id, {file: "content.js"}, function() { });

Was sind die Vorteile, wenn man es auf die eine oder andere Weise macht?

Mein Code

Ich werde mit der programmatischen Art fortfahren, das Inhaltsskript wie in Googles Beispiel einzufügen.

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.js
chrome.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.js
console.log('you\'r in the world of content.js');
var ans = {};

ans.createSidebar = function() {

    return {
        init: function(){
            alert("why hello there");
        }
    }
}();

ans.createSidebar.init();

Ich kann die ersten 3 bekommenconsole.log Anweisungen, die im Debugger der Hintergrundseite angezeigt werden sollen. Ich kann auch die Warnung von content.js erhalten, damit sie auf jeder Website angezeigt wird. Aber ich kann das nicht sehenconsole.log von content.js, noch kann ich die JS von content.js anzeigen. Ich habe versucht, im Abschnitt "Inhaltsskripte" auf der Registerkarte "Quellen" des Hintergrundseitendebuggers nachzuschlagen. Ein paar andere Posts auf SO haben das Hinzufügen vorgeschlagendebugger; Aussagen, um es zu zeigen, aber ich habe kein Glück mit irgendetwas. Die nächste Lösung, die ich gesehen habe, istdieser BeitragDies erfolgt jedoch durch Auflisten des Inhaltsskripts im Manifest.

Jede Hilfe wäre dankbar. Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage