J'ai essayé pendant un certain temps mais je suis incapable d'appeler des méthodes sur mon fichier js de la page d'arrière-plan.Extension Chrome Impossible d'appeler des méthodes en arrière-plan page
Mes regards manifeste comme ceci:
{
"name" : "First chrome extension",
"version" : "0.0.1",
"manifest_version" : 2,
"browser_action" : {
"default_title" : "Practice",
"default_icon" : {
"16" : "assets/images/icon16.png",
"24" : "assets/images/icon24.png",
"32" : "assets/images/icon32.png"
},
"default_popup" : "popup.html"
},
"background" : {
"scripts" : ["background.js"]
},
"content_scripts" : [{
"matches" : ["*://*/*"],
"js" : [
"assets/js/jquery-3.2.1.slim.min.js",
"assets/js/content.js"
]
}],
"permissions" : [
"activeTab",
"storage"
]
}
background.js:
function test()
{
return 'called';
}
actifs/js/popup.js:
console.log(chrome.extension.getBackgroundPage().test());
La plupart des exemples que je Scie la méthode chrome.extension.getBackgroundPage pour récupérer l'arrière-plan mais chaque fois que j'essaie cette méthode, elle me dit la méthode ou tout L'autre variable que j'ai définie dans background.js n'est pas définie et n'est pas présente dans l'objet fenêtre retourné.
J'ai aussi essayé d'utiliser l'API de messagerie comme ceci: background.js
"use strict";
const test = function() {
console.log(1);
}
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse){
console.log(request);
if(request.msg.toLowerCase() === "bg-test") test();
}
);
actifs/js/popup.js:
$(function() {
const btn = '#en-dis-btn';
$(btn).click(function(e){
e.preventDefault();
chrome.runtime.sendMessage({'msg' : 'bg-test'}, function(response) {
console.log(response);
});
});
});
mais l'auditeur dans background.js est jamais appelé . Que pourrais-je faire de mal? La page d'arrière-plan n'est pas nulle, donc elle charge quelque chose.
1) '" scripts ": [" background.js "]' devrait utiliser 'assets/js/background.js' - est-ce une faute de frappe? 2) vous n'envoyez aucune réponse via sendResponse dans l'écouteur. 3) commencez à utiliser le débogueur devtools: définissez des points d'arrêt dans la page d'arrière-plan et dans la fenêtre contextuelle, exécutez le code et voyez ce qui se passe. 4) assurez-vous de recharger l'extension sur chrome: // extensions page 5) et juste au cas où, [Google Chrome/Firefox ne voit pas la sortie de l'extension dans la console] (// stackoverflow.com/a/38920982) – wOxxOm
@wOxxOm it était une faute de frappe, mais c'était juste dans le code, je l'ai juste écrit mal ici. 2) Je suis conscient, j'ai juste besoin que les logs de la console soient exécutés pour l'instant mais cela ne va même pas jusqu'à ce point. 3) Je définirai des points d'inflexion en arrière-plan et vers vous 4) Toujours recharger et utiliser la console d'extension afin de voir les bûches. – InfinityCounter
J'ai réussi à supprimer les extensions et à les ajouter et la messagerie a fonctionné mais je ne comprends toujours pas pourquoi je n'arrive pas à obtenir la méthode getBackgroundPage(), c'est mon problème – InfinityCounter