如何在Chrome中检测javascript是从文档/扩展还是从javascript控制台执行的?

如何在Chrome中检测javascript是从文档/扩展还是从javascript控制台执行的?,javascript,google-chrome,google-chrome-extension,google-chrome-devtools,Javascript,Google Chrome,Google Chrome Extension,Google Chrome Devtools,如何在Chrome中检测javascript是否从Chrome DevTools javascript控制台执行 Smth。比如: if(...) { alert('from document') } else if (...) { alert('from console') } else if (...) { alert('from extension') } else if (...) { alert('from app') } else { alert('anothe

如何在Chrome中检测javascript是否从Chrome DevTools javascript控制台执行

Smth。比如:

if(...) {
  alert('from document')
} else if (...) {
  alert('from console') 
} else if (...) {
  alert('from extension')
} else if (...) {
  alert('from app')
} else {
  alert('another source')
}

也许,这会奏效:

1) 在html中

2) 在devtools控制台中:

unlockMyConsoleCode = true;
workOnlyFromConsole();
outputThisVar();
此外,html的变量“this”和devTools控制台之间可能存在差异

1) 在html中:

2) 在devtools控制台中:

unlockMyConsoleCode = true;
workOnlyFromConsole();
outputThisVar();

出于好奇,你为什么要这么做?您试图解决的现实问题是什么?是否可以将chrome扩展为只允许从javascript控制台(而不是从html文档中的js)访问chrome选项卡(因此,不仅可以从扩展或应用程序,还可以从js控制台手动访问,但仍然禁止从文档访问选项卡)?静态API仅适用于扩展进程。从devtools访问此API的唯一方法是打开devtools的扩展页面(例如弹出窗口、选项、背景页面)。太棒了!谢谢,我以为只能在扩展或应用程序中调用chrome.tabs,现在我可以使用控制台(从扩展页面)