javascript - 检测浏览器或 CEF/Electron

标签 javascript electron chromium-embedded

有什么方法可以检测我的 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/

相关文章:

javascript - 我可以强制 Cypress 使用特定的 IP 地址吗?

node.js - Nodejs,Electron,如何添加滚动条?

javascript - Electron ipc通讯

javascript - CEFSharp RegisterExtension 不起作用

javascript - 美元哈希和变量 - $('#

javascript - 像迪士尼 map 一样自定义 Google map 叠加层

cefsharp - 允许用户使用 cefsharp 浏览器通过鼠标滚轮进行缩放

frameworks - Chromium 嵌入式框架 (CEF) 依赖项

javascript - E4X 与 NodeJS

node.js - ClojureScript Electron 应用程序 __dirname 返回 nil