【发布时间】:2018-12-14 18:15:39
【问题描述】:
我在处理弹出窗口时遇到问题。我已经从 IRequestHandler 实现了 ILifeSpanHandler 和 OnBeforeBrowse(以及其他)。
我如何知道在 ILifeSpanHandler 中调用了什么 URL?我无法在 OnAfterCreated 或 OnBeforePopup 中获得它。目前我首先在 OnBeforeBrowse 中看到它。
我没有代码,因为我的问题是“如何”。在 OnBeforePopup 中,我检查了 targetUrl,但它似乎是用来装饰的,因为我已经读到它无论如何都没有实现。我还查看了 browner/chromiumWebBrowser 对象,browser 和 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
【问题讨论】:
-
请一次问一个问题。
-
另外,请更新您的问题以显示您到目前为止所做的尝试。
-
好吧,让我们提出 2 个问题。他们确实同时处理弹出窗口,但现在我无法识别它们,所以还没有必要知道如何关闭它们。
-
你在哪里读到
targetUrl没有实现?如果window由 javascriptwindow.open打开,targetUrl可能为空 -
我找不到它,但我想这就是我读到的。 magpcss.org/ceforum/viewtopic.php?f=6&t=196 和 code.google.com/archive/p/chromiumembedded/issues/5 但是它已经过时了。
标签: cefsharp chromium-embedded