Использование интерфейса CEFSharp ILifeSpanHandler для обработки всплывающих окон - PullRequest
0 голосов
/ 14 декабря 2018

У меня проблема с обработкой всплывающих окон.Я реализовал ILifeSpanHandler и OnBeforeBrowse (среди других) из IRequestHandler.

Как узнать в ILifeSpanHandler, какой URL вызывается?Я не могу получить его ни в OnAfterCreated, ни в OnBeforePopup.В настоящее время я вижу это сначала в OnBeforeBrowse.

У меня нет кода, так как мой вопрос «Как».В OnBeforePopup я проверил targetUrl, но, похоже, он есть для украшения, так как я прочитал, что он все равно не реализован.Я также посмотрел на объекты browner / chromiumWebBrowser, браузер и newBroswer кажутся ничем.Можно ожидать, что в OnAfterCreated chromiumWebBrowser вернет объект, но в моем случае это ничего.

Я тестирую со следующим

        Public Sub OnAfterCreated(chromiumWebBrowser As IWebBrowser, browser As IBrowser) Implements ILifeSpanHandler.OnAfterCreated

            Try
                Debug.Print(vbNewLine)
                Debug.Print("OnAfterCreated")
                Debug.Print(String.Concat("OnAfterCreated - MainFrame.Url "), browser.MainFrame.Url)
                Debug.Print("OnAfterCreated")
                Debug.Print(vbNewLine)

            Catch ex As Exception

            End Try
        End Sub

И у меня есть следующее

 Public Function OnBeforePopup(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, targetUrl As String, targetFrameName As String, targetDisposition As WindowOpenDisposition, userGesture As Boolean, popupFeatures As IPopupFeatures, windowInfo As IWindowInfo, browserSettings As IBrowserSettings, ByRef noJavascriptAccess As Boolean, ByRef newBrowser As IWebBrowser) As Boolean Implements ILifeSpanHandler.OnBeforePopup

            Try
                Debug.Print(vbNewLine)
                Debug.Print("OnBeforePopup")
                Debug.Print(String.Concat("OnBeforePopup - targetUrl "), targetUrl)
                Debug.Print(String.Concat("OnBeforePopup - browser.MainFrame.Url "), browser.MainFrame.Url)
                Debug.Print(String.Concat("OnBeforePopup - chromiumWebBrowser.Address "), chromiumWebBrowser.Address)
                Debug.Print("OnBeforePopup")
                Debug.Print(vbNewLine)
            Catch ex As Exception

            End Try

            Return False
        End Function
...