, href, , data attribute , , .
href void(0), , VB .
WebBrowser, VB Microsoft Internet Controls, Microsoft HTML Library, , mshtml.tlb.
, WebBrowser "WebBrowser1", "Form1", "Form2" "Form3", , WebBrowser,
Private HTMLdoc As MSHTML.HTMLDocument
' Create a Web Page to test the navigation
' You can skip this phase after your test are successfully executed
Private Sub Form_Load()
Dim HTML As String
WebBrowser1.Navigate "about:blank"
HTML = "<html>"
HTML = HTML & "<title>Open a VB Form from a Link</title>"
HTML = HTML & "<body>"
HTML = HTML & "<a data-vb='Form1' href='javascript:void(0)'>Click To show Form1</a>"
HTML = HTML & "</br>"
HTML = HTML & "<a data-vb='Form2' href='javascript:void(0)'>Click To show Form2</a>"
HTML = HTML & "</br>"
HTML = HTML & "<a data-vb='Form3' href='javascript:void(0)'>Click To show Form3</a>"
HTML = HTML & "</br>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"
WebBrowser1.Document.Write HTML
End Sub
' This will load and show the form specified in the data-vb attribute of the link
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Dim frm As Form, FormName as String
If Not (WebBrowser1.Document Is Nothing) Then
Set HTMLdoc = WebBrowser1.Document
FormName = vbNullString & HTMLdoc.activeElement.getAttribute("data-vb")
If Not FormName = vbNullString Then
Set frm = Forms.Add(FormName)
frm.Show
End If
End If
End Sub
:
:
HTMLdoc.activeElement.toString
, :
javascript:void(0), URL BeforeNavigate.
, HTMLDocument BeforeNavigate, :
HTMLdoc.activeElement.outerHTML
:
<A href="javascript:void(0)" data-vb="Form2">Click To show Form2</A>