J'ai essayé d'obtenir le nom de domaine à l'aide d'une alert(document.domain);
Mais je n'obtiens pas le bon domaine lorsque je le teste dans un site,
Je reçois "hiecjmnbaldlmopbbkifcelmaaalcfib" cette sortie étrange.
Je l'ai ajouté dans le manifeste aussi
"content_scripts": [ { "js": ["inject.js"] } ],
Alerte (document.domain); Est la seule ligne de texte à l'intérieur de inject.js.
Et j'ai incorporé ce <script type="text/javascript" src="inject.js"> </script>
dans le fichier html principal après popup.js
Des idées sur la raison pour laquelle je ne reçois pas l'URL du domaine correct?
Merci!
Si vous êtes en popup ou en arrière-plan ou une page d'options, il existe une approche indirecte pour obtenir le domaine de la page.
Vous pouvez vous référer au code suivant comme référence.
Scripts de contenu enregistrés, arrière-plan et scripts contextuels avec fichier manifeste avec les autorisations pertinentes
{ "name": "Domain Name", "description": "http://stackoverflow.com/questions/14796722/javascript-google-chrome-extension-getting-domain-name", "version": "1", "manifest_version": 2, "content_scripts": [ { "matches": [ "<all_urls>" ], "js": [ "myscript.js" ] } ], "browser_action": { "default_popup": "popup.html" }, "background": { "scripts": [ "background.js" ] }, "permissions": [ "tabs", "<all_urls>" ] }
console.log(document.domain);// Outputs present active URL of tab
popup.js
enregistré pour dépasser CSP.
<html> <head> <script src="popup.js"></script> </head> <body></body> </html>
Ajout d'un Event Listener pour le DOM Content Loaded
, et a apporté l'URL active de l'onglet sur lequel l'utilisateur est activé.
document.addEventListener("DOMContentLoaded", function () { console.log(document.domain);//It outputs id of extension to console chrome.tabs.query({ //This method output active URL "active": true, "currentWindow": true, "status": "complete", "windowType": "normal" }, function (tabs) { for (tab in tabs) { console.log(tabs[tab].url); } }); });
console.log(document.domain); //It outputs id of extension to console chrome.tabs.query({ //This method output active URL "active": true, "currentWindow": true, "status": "complete", "windowType": "normal" }, function (tabs) { for (tab in tabs) { console.log(tabs[tab].url); } });
Tu trouveras
Fgbhocadghoeonlokakijhnlplgkolbg
Comme sortie pour console.log (document.domain); Dans toutes les pages d'extensions et
et
Pour la sortie tabs.query()
.
Toutefois, la sortie du script de contenu est toujours