PDA

View Full Version : بررسی وجود یک ID در WebBrowser



samiasoft
دوشنبه 28 مرداد 1392, 11:15 صبح
در WebBrowser قسمتی از سایت را قرار دادم

میخواهم یه شرطی بزارم وقتی که تکست باکسی با ID مشخص در این WebBrowser باشه مثلا یه دستوری انجام بشه و اگر هم ID موردنظر وجود نداشت دستوری انجام نشه.

لطفا راهنمایی کنین

samiasoft
دوشنبه 28 مرداد 1392, 21:45 عصر
دوستان نظری در مورد این سوالم ندارید؟!

mmssoft
چهارشنبه 30 مرداد 1392, 22:12 عصر
اول سورس صفحه مورد نظرت رو بدست بیار و توی یه textbox به اسم مثلا pagesource بریز. بعد از کد زیر استفاده کن (البته ممکنه فرایندش کمی طول بکشه!) :

Dim i As Integer, txt As String
txt = "textboxid" 'آي دي مورد نظر شما

For i = 1 To Len(pagesource.Text) - Len(txt)
If Mid(pagesource.Text, i, Len(txt)) = txt Then
' دستوراتي که بايد در صورت وجود داشتن آي دي انجام بشن
Exit For
End If
Next

meys34
چهارشنبه 30 مرداد 1392, 23:21 عصر
شی تکست باکس در html بایستی tagName="input" و type آن هم باید text یا password باشد...
داریم:

Dim html As Object 'HTMLDocument
For Each html In WebBrowser1.Document.getElementsByTagName("input")
If (html.Type = "text" Or html.Type = "password") And html.id = "lst-ib" Then MsgBox html.outerHTML
Next


این خوبه ولی اگر تکست باکس ما داخل iFrame باشه با این روش جواب نمیده...
که در نهایت داریم:


Private Sub Command1_Click()
getAll WebBrowser1.Document.documentElement
End Sub

Private Function getAll(ByVal web As Object, Optional ByVal iFram As Boolean)
Dim html As Object, iFrame As Object 'HTMLDocument


For Each iFrame In web.getElementsByTagName("iframe")
getAll iFrame.contentWindow.Document, True
Next

For Each html In web.getElementsByTagName("input")
If (html.Type = "text" Or html.Type = "password") And html.id = "lst-ib" Then MsgBox html.outerHTML
Next

End Function