I tried to get the domain name using alert(document.domain); But i\'m not getting the right domain when I test it out in a site,
I get \"hiecjmnbaldlmop
If you are in popup or background or options page, there is an indirect approach for obtaining domain of page.
You can refer to following code as a reference.
Registered content scripts, background and popup scripts with manifest file along with relevant permissions
{
"name": "Domain Name",
"description": "http://stackoverflow.com/questions/14796722/javascript-google-chrome-extension-getting-domain-name",
"version": "1",
"manifest_version": 2,
"content_scripts": [
{
"matches": [
""
],
"js": [
"myscript.js"
]
}
],
"browser_action": {
"default_popup": "popup.html"
},
"background": {
"scripts": [
"background.js"
]
},
"permissions": [
"tabs",
""
]
}
console.log(document.domain);// Outputs present active URL of tab
Registered popup.js to surpass CSP.
Added Event Listener for DOM Content Loaded, and brought active URL of tab where user is on.
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);
}
});
You will find
fgbhocadghoeonlokakijhnlplgkolbg
as output for console.log(document.domain); in all extension pages and
and
http://somedomain.com/
for tabs.query() output.
However, Content script output is always
http://somedomain.com/