有什么方法可以检测我的 JS 代码是在真正的浏览器中运行,还是在 CEF 或 Electron 等工具包中运行?
最佳答案
如果您可以控制托管 CEF 控件的应用程序,您可以注册一个要绑定(bind)的对象,如下所示:
chromeBrowser.JavascriptObjectRepository.Register("boundAsync", new CefCustomObject(chromeBrowser), true);
CefCustomObject 类:
class CefCustomObject
{
// Declare a local instance of chromium and the main form in order to execute things from here in the main thread
private static ChromiumWebBrowser _instanceBrowser = null;
public CefCustomObject(ChromiumWebBrowser originalBrowser)
{
_instanceBrowser = originalBrowser;
}
}
然后您可以检查此对象是否存在于 Web 应用程序中。 Web 应用程序中的 JavaScript:
(async function()
{
if ("CefSharp" in window) {
await CefSharp.BindObjectAsync("boundAsync");
if (boundAsync) {
alert('running inside CEF')
}
}
})();
来源:
关于javascript - 检测浏览器或 CEF/Electron,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50369703/