Я думаю, что это довольно надежная версия, которая работала в моих начальных тестах и не требует более медленного перехвата попытки, и она идентифицирует по крайней мере три основных контекста расширения chrome и должна сообщить вам, если вы находитесь на базовая страница.
av = {};
av.Env = {
isChromeExt: function(){
return !!(window['chrome'] && window['chrome']['extension'])
},
getContext: function(){
var loc = window.location.href;
if(!!(window['chrome'] && window['chrome']['extension'])){
if(/^chrome/.test(loc)){
if(window == chrome.extension.getBackgroundPage()){
return 'background';
}else{
return 'extension';
}
}else if( /^https?/.test(loc) ){
return 'content';
}
}else{
return window.location.protocol.replace(':','');
}
}
};