标签: cefsharp

当托管Chromium Embedded出现JavaScript错误时,是否可以获得通知?

在过去使用过标准的WinForms WebBrowser控件后,只要在托管的Web浏览器控件的当前加载页面内发生脚本错误,我就能收到OLECMDID_SHOWSCRIPTERROR通知.

现在我转而使用Chromium Embedded(通过CefSharp .NET包装器)并寻找类似的东西.

我可以考虑注入一些JavaScript代码,但是真的很想拥有一个不需要改变HTML的解决方案.

我的问题:

在当前加载的页面中发生JavaScript错误时,Chromium Embedded是否可能以某种方式通知我的应用程序?

(我也在CefSharp组中问这个问题,认为这可能是独立的,所以在Stack Overflow上也要这么做)

更新1:

我看到CefSharp似乎没有实现一个OnUncaughtException功能.但不确定这是关于JavaScript错误还是CEF错误.

.net chromium winforms chromium-embedded cefsharp

6
推荐指数
1
解决办法
2292
查看次数

cefsharp中cef.pak文件的用途是什么?

CefSharp常见问题解答中,它声明您应该禁用包装:

var settings = new CefSharp.CefSettings 
{
    PackLoadingDisabled = true
};
Run Code Online (Sandbox Code Playgroud)

这通常适用于生产模式应用程序

我有一个问题,在特定的网站上,下拉框周围出现红色边框.如果我设置PackLoadingDisabled = false并确保cef.pak文件位于文件夹中(此cef.pak随CefSharp nuget包一起分发.我包括除locates/en-US.pak之外的任何其他.pak文件),这样就解决了这个问题.

我的问题是,这个cef.pak文件的用途什么?

我看过CEF3自述文件,它显示它是可选的,但是这个Pack服务的目的不是很清楚.在我将其包含在我的软件分发版中之前,我需要确切知道它的用途.

我可以安全地在我的发布版本中启用Pack Loading吗?

winforms cefsharp

6
推荐指数
1
解决办法
6882
查看次数

Windows XP/Server 2003/VS 2010上的CefSharp

我正在尝试将CefSharp集成到我在Windows XP上的Visual Studio 2010中开发的C#项目中.运行Windows Server 2003的其他人也报告了类似的错误.

  1. 我通过NuGet添加CefSharp.WinForms,它似乎工作得很好.

  2. 我编译并运行应用程序但是当我尝试加载CefSharp时,我得到"由'CefSharp.Core.dll'导入的过程无法加载."

以下是我运行的代码:

        var settings = new CefSharp.CefSettings {
            PackLoadingDisabled = true
        };

        if (Cef.Initialize(settings)) {
            throw new Exception("Failed to initialze CefSharp");
        }

        var browser = new CefSharp.WinForms.ChromiumWebBrowser("http://www.google.com/");
        browser.SetBounds(0, 0, ClientSize.Width, ClientSize.Height);
        Controls.Add(browser);
Run Code Online (Sandbox Code Playgroud)

CefSharp常见问题解答它告诉我,为了在Windows XP上运行,我应该执行许多任务,即使XP没有得到官方支持,它在常见问题解答中说它可以工作.

出现错误消息

项目文件

bin\x86\debug中的文件

.net c# gac visual-studio-2010 cefsharp

6
推荐指数
1
解决办法
4457
查看次数

cefsharp应用程序记住密码选项

我正在使用CefSharp嵌入一个webapp,一切正常。但是,登录应用程序时,CEF不会像在普通Chrome中打开应用程序时那样记住用户名和密码。

CefSharp中是否有一种方法可以让cef要求记住用户名/密码,以便在使用返回到应用程序时,他们可以更快地登录?

我试过使用一些命令行参数,例如

CefSettings cs = new CefSettings();
cs.CefCommandLineArgs.Add("enable-automatic-password-saving", "enable-automatic-password-saving");
cs.CefCommandLineArgs.Add("enable-password-save-in-page-navigation", "enable-password-save-in-page-navigation");
Cef.Initialize(cs);
Run Code Online (Sandbox Code Playgroud)

但是到目前为止,cef尚未提示我保存用户名/密码。

c# passwords chromium-embedded cefsharp

6
推荐指数
1
解决办法
3073
查看次数

WinForms CefSharp浏览器LocalStorage无法正常工作

我正在尝试在WinForms应用程序中使用CefSharp浏览器控件以及LocalStorage机制.
问题是应用程序中的浏览器控件更改为LocalStorage不会影响其他浏览器窗口,并且它不会从其他Chrome浏览器窗口获得更改.
HTML在本机Chrome浏览器中工作,并更改localstorage并获取更改通知.
我错过了什么?

C#代码:

    public Form1()
    {
        InitializeComponent();

        CefSharp.Cef.Initialize();

        _browser = new ChromiumWebBrowser(URL_TO_LOAD);
        _browser.BrowserSettings = new CefSharp.BrowserSettings()
        {
            ApplicationCacheDisabled = false,
            FileAccessFromFileUrlsAllowed = true,
            JavascriptDisabled = false,
            LocalStorageDisabled = false,
            WebSecurityDisabled = true,
            JavaScriptOpenWindowsDisabled = false,
            JavascriptDomPasteDisabled = false
        };
        _browser.Load(URL_TO_LOAD);

        splitContainer1.Panel1.Controls.Add(_browser);
    }
Run Code Online (Sandbox Code Playgroud)

HTML:

 <!DOCTYPE html>
 <html lang="en">
 <head>
      <meta charset="utf-8"/>
      <meta name="viewport" content="width=620"/>
      <title>HTML5 Demo: Storage Events</title>
 </head>
<body>
    <div>
        <p>
            <label for="data">Your test data:</label> <input type="text"
                name="data" value="" placeholder="change me" id="data" /> 
        </p>
        <p id="fromEvent">Waiting for data …
Run Code Online (Sandbox Code Playgroud)

c# local-storage cefsharp

6
推荐指数
1
解决办法
4153
查看次数

在触摸屏上禁用文本输入上的Chrome粘贴菜单

如何在触摸屏上禁用Chrome中这个烦人的上下文菜单.当我复制了一些文本时,这会在选择/长按任何输入时弹出.

在此输入图像描述

我正在使用CEFSharp(Chromium Embedded Framework)开发应用程序,并将其部署在Windows 8计算机的触摸屏上.我正在使用屏幕键盘(http://mottie.github.io/Keyboard/)在输入字段中输入文本.

我试过了

            $('input').bind('copy paste contextmenu', function (e) {
                e.preventDefault();
                e.stopPropagation();
            });
Run Code Online (Sandbox Code Playgroud)

这会禁用粘贴,但菜单仍会显示.我怎么摆脱这个菜单?如何最好地解决这个问题:CSS,Javascript或通过chrome命令行参数(http://peter.sh/experiments/chromium-command-line-switches/)?

google-chrome copy-paste touchscreen chromium-embedded cefsharp

6
推荐指数
1
解决办法
1467
查看次数

chromium - 在初始页面加载c#上发送自定义标题信息

或者如何在新建ChromiumWebBrowser实例时将自定义标头注入到站点的初始请求中.

我是Chromium的菜鸟,可以真正使用一些帮助.我有一个带CEF窗口的winforms应用程序.K,到目前为止没有问题.我需要做的是使用包含身份验证信息的自定义http-header调用/加载初始URL.这可能吗?

以下基本上是正在发挥作用的所有部分工作,除了自定义标题(Doh!)

Winform(CEF httpRequest(带有自定义标头))[永远不会超过这一点] => C#MVC web app => Owin_Authentication_Pipeline segment => MVC响应,带有填充的Razor视图=>显示在Winform Chromium应用程序中.

也许这也会有所帮助:

using CefSharp;
using CefSharp.WinForms;
...
private void Form1_Load(object sender, EventArgs e)
{
    Cef.Initialize();
    ChromiumWebBrowser myBrowser = new ChromiumWebBrowser("whatever.com");
    // ??How do i get a custom header be sent with the above line??

    myBrowser.Dock = DockStyle.Fill;
    //myBrowser.ShowDevTools();
    //myBrowser.RequestHandler = new DSRequestHander();
    //myBrowser.FrameLoadStart += myBrowser_FrameLoadStart;
    this.Controls.Add(myBrowser);
}
Run Code Online (Sandbox Code Playgroud)

我把它弄死了,看了看,尝试了我工具箱中的所有技巧,然后是一些.

我非常感谢任何想法,帮助或暗示我如何能够解决或绕过这个boggler.提前致谢.

c# winforms custom-headers chromium-embedded cefsharp

6
推荐指数
3
解决办法
6105
查看次数

使用CEFSharp Web浏览器的WPF应用程序在clickonce版本中崩溃

我有一个简单的WPF应用程序,它可以在调试中正常工作,但是当我尝试加载CEFSharp Web浏览器时,它会发出clickonce版本崩溃

我有一个登录页面,用户然后点击打开浏览器一旦点击我得到以下错误

PresentationFramework.dll中发生未处理的"System.Windows.Markup.XamlParseException"类型异常

附加信息:在类型"MyProject.Views.CefSharpWebBrowserUserControl"上调用与指定绑定约束匹配的构造函数引发异常.

Xaml创建UserControl的实例时出错

> <TabItem Header="Web Page" Name="CefWebPage">
>                 <Grid Background="#FFE5E5E5" Margin="0">
>                     <Grid.ColumnDefinitions>
>                         <ColumnDefinition Width="871*"/>
>                     </Grid.ColumnDefinitions>
>                     <views:CefSharpWebBrowserUserControl x:Name="CefSharpWebBrowserUserControl"></views:CefSharpWebBrowserUserControl>
>                 </Grid>
>             </TabItem>
Run Code Online (Sandbox Code Playgroud)

例外:无法创建"CefSharpWebBrowserUserControl"的实例.

TargetInvocationException:调用目标抛出异常.

FileNotFoundException:无法加载文件或程序集'CefSharp.Core,Version = 45.0.0.0,Culture = neutral,PublicKeyToken = 40c4b6fc221f4138'或其依赖项之一.该系统找不到指定的文件.

代码背后

    public partial class CefSharpWebBrowserUserControl : UserControl
    {
        public CefSharpWebBrowserUserControl()
        {
            InitializeComponent();
            var settings = new CefSettings();
            settings.PackLoadingDisabled = true;
            WebBrowser = new ChromiumWebBrowser();
            WebBrowser.Address = "www.google.com";
            BrowserGrid.Children.Add(WebBrowser);
        }

        public ChromiumWebBrowser WebBrowser { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# wpf xaml cefsharp

6
推荐指数
1
解决办法
3331
查看次数

cefsharp和Previewkeydown事件不起作用

这可能是一个简单的问题,但是我有一个Winforms应用程序正在加载ChromiumWebBrowser控件(CefSharp),由于这些控件都吞噬了所有的预览事件,因此我无法弄清楚如何捕获它们。

将处理程序附加到浏览器控件的PreviewKeyDown事件的标准不起作用。有已知的解决方法吗?

c# cefsharp

6
推荐指数
1
解决办法
2821
查看次数

DotNetBrowser与CefSharp比较

我正在考虑将项目转换为WinForm应用程序中的嵌入式WebView类型架构,并考虑使用DotNetBrowser和CefSharp.

经过多次搜索后,我似乎无法找到免费CefSharp项目与付费DotNetBrowser组件的功能之间的任何比较.与DotNetBrowser的支持选项的主要区别是还有其他记录的差异吗?

cefsharp dotnetbrowser

6
推荐指数
1
解决办法
1787
查看次数