Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cef Sharp未显示使用window.open调用的弹出窗口_Javascript_C# 4.0_Popupwindow_Cefsharp - Fatal编程技术网

Javascript Cef Sharp未显示使用window.open调用的弹出窗口

Javascript Cef Sharp未显示使用window.open调用的弹出窗口,javascript,c#-4.0,popupwindow,cefsharp,Javascript,C# 4.0,Popupwindow,Cefsharp,我已经使用CefSharp.WinForms构建了一个应用程序。这一切都很好,但当任何网站使用javascriptwindow.open()显示弹出窗口时,它将无法工作。 我已经实现了ILifeSpanHandler,它对链接运行得非常好,但在使用window.open()时失败。谁能帮我处理window.open() EDIT-1lifespanhandler实现 您是否使用示例验证了问题?你的LifeSpanHandler长什么样?在弹出前的onbeforepoop中返回什么?不使用给定示例

我已经使用CefSharp.WinForms构建了一个应用程序。这一切都很好,但当任何网站使用javascript
window.open()
显示弹出窗口时,它将无法工作。 我已经实现了ILifeSpanHandler,它对链接运行得非常好,但在使用
window.open()时失败。谁能帮我处理
window.open()

EDIT-1lifespanhandler实现
您是否使用
示例验证了问题?你的
LifeSpanHandler
长什么样?在弹出前的
onbeforepoop
中返回什么?不使用给定示例。有关
LifeSpanHandler
的信息,请参见编辑-1如果设置
newBrowser=null
并删除其余代码(保留
返回false
),它是否有效?另一个代码只是一个示例,我最近没有测试过它。标准的
弹出窗口不需要它。即使在任何站点使用
窗口时,它也不工作。未调用beforepoop.open()
onbeforepoop。您尝试过使用
示例吗?默认情况下,还应启用所有弹出窗口。只需尝试删除您当前的
LifeSpanHandler
,例如,注释掉您分配给
browser.LifeSpanHandler=new LifeSpanHandler()
public class LifeSpanHandler : ILifeSpanHandler
{
    public bool DoClose(IWebBrowser browserControl, IBrowser browser)
    {
        return false;
    }

    public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser)
    {
        //throw new NotImplementedException();
    }

    public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser)
    {
        //throw new NotImplementedException();
    }

    public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IWindowInfo windowInfo, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
    {
        var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;

        ChromiumWebBrowser chromiumBrowser = null;

        var windowX = windowInfo.X;
        var windowY = windowInfo.Y;
        var windowWidth = (windowInfo.Width == int.MinValue) ? 600 : windowInfo.Width;
        var windowHeight = (windowInfo.Height == int.MinValue) ? 800 : windowInfo.Height;

        chromiumWebBrowser.Invoke(new Action(() =>
        {
            var owner = chromiumWebBrowser.FindForm();
            chromiumBrowser = new ChromiumWebBrowser(targetUrl)
            {
                LifeSpanHandler = this
            };
            chromiumBrowser.SetAsPopup();

            var popup = new Form
            {
                Left = windowX,
                Top = windowY,
                Width = windowWidth,
                Height = windowHeight,
                Text = targetFrameName
            };

            owner.AddOwnedForm(popup);

            //popup.Controls.Add(new Label { Text = "CefSharp Custom Popup" });
            popup.Controls.Add(chromiumBrowser);

            popup.Show();
        }));

        newBrowser = chromiumBrowser;

        return false;
    }
}