NewWindowDispatch
Interface AntViewNewWindowRequestedEventArgs
Type: Method
Parameters: IDispatch* Browser
Returns: nothing
The new browser control to use for this new window.
This method is needed if you want to use this from within VB6.
See also NewWindow.
Sometimes you need to connect the new window to a new browser. For example if you need to support the http post interface then you can't just pass the Url to the new window.
Below is some visual basic example code on how you can do this.
We have a html page with the following content:
<!DOCTYPE HTML>
<html>
<head>
<script src="NewWindow.js"></script>
</head>
<body>
</body>
</html>
and the javascript file looks like this:
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "<https://www.yahoo.com>");
function popitup(url) {
newwindow = window.open(url, 'name', 'width=800,height=600');
if (window.focus) {
newwindow.focus()
}
newwindow.document.body.appendChild(form);
newwindow.document.forms[0].submit();
return false;
}
popitup();
So what we have here is a non user initiated popup that opens a page in another domain while trying to post a form.
In Visual Basic we have two forms, form1 and form2, both have an AntView component on it called "browser".
Here's the content of form1.
Option Explicit
Public WithEvents DeferWindow As AntViewAx.AntViewDeferral
Public WithEvents NewWindowArgs As AntViewAx.AntViewNewWindowRequestedEventArgs
Private Sub Form_Load()
Set DeferWindow = New AntViewAx.AntViewDeferral
Set NewWindowArgs = New AntViewAx.AntViewNewWindowRequestedEventArgs
browser.UnlockControl "ExampleCompany", "WI5PO2-2KSU3Q-HWFXFU-IUMU2V-QF8P2F"
browser.CreateWebView
browser.EventsUseHexadecimal = True
browser.Navigate "https://antwise.com/demo/NewWindow.html"
End Sub
Private Sub browser_OnNewWindowRequested(ByVal Args As AntViewAx.IAntViewNewWindowRequestedEventArgs)
Dim URI As String
URI = Args.URI
Debug.Print "New Window: " & URI
Load Form2
Form2.Show
Args.Handled = True
Debug.Print "user initiated = " & Args.UserInitiated
Set NewWindowArgs = Args
Set DeferWindow = Args.Deferral
End Sub
We create a NewWindowArgs object as it takes time for the new browser object in form2 to create itself. We also use the AntViewDeferral object to indicate that to the OnNewWindowRequested event that it should defer the event.
form2 looks like this:
Option Explicit
Private Sub Form_Load()
browserPopup.UnlockControl "ExampleCompany", "WI5PO2-2KSU3Q-HWFXFU-IUMU2V-QF8P2F"
browserPopup.CreateWebView
browserPopup.EventsUseHexadecimal = True
End Sub
Private Sub browserPopup_OnCreateWebviewCompleted(ByVal HResult As Long)
Debug.Print "popup triggered"
Form1.NewWindowArgs.NewWindowDispatch (browserPopup.IDispatchPointer)
Form1.DeferWindow.Complete
End Sub
Introduced in AntView release 1.1.314
AntView - The MS Edge WebView2 ActiveX control Date last changed: 09/25/2024