функция toString (2019)
Кредит Overcl9ck комментарий к этому ответу. Замена регулярного выражения /./
на пустой функциональный объект все еще работает.
var devtools = function(){};
devtools.toString = function() {
this.opened = true;
}
console.log('%c', devtools);
// devtools.opened will become true if/when the console is opened
регулярное выражение toString (2017-2018)
Поскольку первоначального аскера больше не существует, и это все еще принятый ответ, добавим это решение для наглядности. Кредит Антонин Хильдебранд комментарий zswang ответ . Это решение использует тот факт, что toString()
не вызывается для зарегистрированных объектов, если консоль не открыта.
var devtools = /./;
devtools.toString = function() {
this.opened = true;
}
console.log('%c', devtools);
// devtools.opened will become true if/when the console is opened
console.profiles (2013)
Обновление: console.profiles
удалено из Chrome. Это решение больше не работает.
Спасибо Полу Ирландскому за указание на это решение из Откройте для себя DevTools , используя профилировщик:
function isInspectOpen()
{
console.profile();
console.profileEnd();
if (console.clear) console.clear();
return console.profiles.length > 0;
}
window.innerHeight (2011)
Этот другой параметр может обнаружить, что закрепленный инспектор был открыт открытым после загрузки страницы, но он не сможет обнаружить неотстыкованного инспектора или если инспектор уже был открыт при загрузке страницы. Существует также потенциал для ложных срабатываний.
window.onresize = function()
{
if ((window.outerHeight - window.innerHeight) > 100)
alert('Docked inspector was opened');
}