我想实现这样的一个功能:我用webbrowser控件做了一个程序,我想在打开这个网页的时候,去掉网页中的JS代码。不知如何实现?(说明:是在整个DocumentComplete之前!)
解决方案 »
- 求一条sql语句
- 请问这个自定义控件有什么问题吗,为什么调用它没有显示
- 在VB和ASP环境下调用外部文件疑难问题,3天了,请高高高高手!!!在线等!!!
- 在VB中怎么将事件加入多线程?
- 从price表里选出MODIFYDATE最大的那个code的price字段SQL 语句如何写
- 如何用vb与access2000或sql2000写一个c/s程序(50分)
- 关于IE插件的CLSID问题
- F4 遭遇空难,4 人幸免于难。
- 菜鸟提问:请问如何使用VB编一个基于SNMP协议和路由器的网络记费系统?
- 竟然没人会,哎!!!我晕??!!?!
- vb中用webbrowser编程模拟浏览器自动访问某个网页中的链接
- 求助,WebBrowser访问表单问题!
Option ExplicitPrivate Sub Form_Load()
WebBrowser1.Navigate "http://test/index.html"
End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim sTemp As String
Dim outStr As String
Dim i As Integer
Dim beginPos As Long
Dim endPos As Long
sTemp = WebBrowser1.Document.documentelement.InnerHTML
'Text1.Text = sTemp
i = 1
Do While i <> 0
i = InStr(1, sTemp, "<SCRIPT")
If i <> 0 Then
outStr = Left(sTemp, i - 1)
sTemp = Right(sTemp, Len(sTemp) - i - 6)
i = InStr(1, sTemp, "</SCRIPT>")
If i <> 0 Then
sTemp = Right(sTemp, Len(sTemp) - i - 8)
End If
sTemp = outStr & sTemp
End If
Loop
WebBrowser1.Document.write sTemp
'Text2.Text = sTemp
End Sub
With WebBrowser1.Document.Forms(0)
.c2.Checked = 1
.r1(1).Checked = 1
End With
End Sub
Private Sub Command2_Click()
With WebBrowser1.Document.Forms(0)
.d1.Options(1).Selected = 1
End With
End Subweb.Document.getElementsByName("D1").Item(0).selectedIndex = 1==============================================
<input type="radio" value="n" checked name="notecome">普通
<input type="radio" value="c" name="notecome">原创
<input type="radio" value="z" name="notecome">转帖
<input type="button" value="发送提交" name="button"比如一个网页里有如上代码
我想选择原创
webbrowser中怎么写
Private Sub Command1_Click()
WebBrowser1.Navigate "c:\ggg.html"
End SubPrivate Sub Command2_Click()
Dim x
For Each x In WebBrowser1.Document.All("notecome")
If x.Value = "c" Then
x.Checked = True
End If
Next
End Sub============================================================================================
假设你的HTML代码如下:<html>
<script>
function abcd(){
alert("haha");
return false;
}
</script><body>
<a id = 'xxx' href=# onclick="abcd()">ggggg</a>
</body>
</html>VB代码如下:
Private Sub Command1_Click()
WebBrowser1.Navigate "http://www.applevb.com/script_test.html"
End SubPrivate Sub Command2_Click()
Dim a, b
Dim d As IHTMLDocument2
For Each a In WebBrowser1.Document.All
Debug.Print a.tagName
If (a.tagName = "SCRIPT") Then End If
If (a.tagName = "A") Then
If a.Id = "xxx" Then
a.FireEvent ("onclick")
End If
End If
Next点击Command1浏览这个网页,点击Command2运行其中的脚本abcd。
==============================================怎么编程把用户名,密码提交到网页上的登录页?
首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
假设你的HTML页面表单代码如下:
<form method="POST" action="http://chen/dll/chat/chatmain.exe/RegUser">
<p>请填写下面表单注册(*项为必添项)</p>
<p>*姓名<input type="text" name="Name" size="20"></p>
<p>*昵称<input type="text" name="NickName" size="20"></p>
<p>电子邮件<input type="text" name="EMail" size="20"></p>
<p>*密码<input type="text" name="Password" size="20"></p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
</form>
注意其中元素的type、Name、value属性。然后VB中的代码如下:
Private Sub Command1_Click()
WebBrowser1.Navigate "http://chen/chat/newuser.htm"
End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim vDoc, vTag
Dim i As Integer
Set vDoc = WebBrowser1.Document
List1.Clear
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
If vTag.Type = "text" Or vTag.Type = "password" Then
List1.AddItem vTag.Name
Select Case vTag.Name
Case "Name"
vTag.Value = "IMGod"
Case "NickName"
vTag.Value = "IMGod"
Case "Password"
vTag.Value = "IMGodpass"
Case "EMail"
vTag.Value = "[email protected]"
End Select
ElseIf vTag.Type = "submit" Then
vTag.Click
End If
End If
Next i
End Sub
点击Command1就可以自动填表并提交了。
=====================================================================================
调用forms下的Submit控件的Click事件,我会做,但我不想这么做.有没有办法直接调用类似于:web1.document.forms.submit,这句语句我怎么写都不成功
是这个
Webbrowser1.document.formName.submit()不能用,formname为form1所以我调用Webbrowser1.document.form1.submit
出错类型:对象不支持该属性或方法,
然后调用Webbrowser1.document.forms(0).submit()
出错类型同上
Private Sub Command1_Click()
WebBrowser1.Navigate "http://localhost/webapplication2/MyLogonPage.aspx"
End SubPrivate Sub Command2_Click()
WebBrowser1.Document.All("Form1").submit
End Sub
<form name="form1" method="post" action="aa.asp">
......
<input name="reset" type="reset" vlaue="reset" class="button">
</form>
我本想把reset的type改成submit 再提交,可出错,type是只读属性,不能修改,我只要有办法把这页面递交出去就行,当然,用POST也不行,参数太多,组合方式太多
你用下面的代码试一下你的页面:
Private Sub Command1_Click()
WebBrowser1.Navigate "http://oakhome.xicp.net/webapplication2/MyLogonPage.aspx"
End SubPrivate Sub Command2_Click()
Dim x
On Error Resume Next
For Each x In WebBrowser1.Document.All
List1.AddItem x.Name
Next
End Sub看看在List1里面列出来的页面元素的名字有没有Form1
找到原因了,你的页面是这样的:
<input language="javascript" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " name="Submit1" id="Submit1" type="submit" value="Submit" />
你把name="Submit1" 改成name="Submit"肯定就不会成功了,很不幸的是我要提交的页面中就有这样一句,现在可有办法解决吗???=======================================================================
使用WebBrowser_V1接受消息Private WithEvents WebMessage As WebBrowser_V1Private Sub Form_Load()
Set WebMessage = WebBrowser1.Object
End SubPrivate Sub WebMessage_NewWindow(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Processed As Boolean)'这里有Flags变量可以取得窗体应有的状态End Sub具体值需要你自己去试试看。对象浏览器里面没有=======================================================================================================通过下面的方法遍历页面中的IFrame:Sub EnumFrames(ByVal wb As WebBrowser)
Dim pContainer As olelib.IOleContainer
Dim pEnumerator As olelib.IEnumUnknown
Dim pUnk As olelib.IUnknown
Dim pBrowser As SHDocVw.IWebBrowser2 Set pContainer = wb.Object.Document
' Get an enumerator for the frames
If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
Set pContainer = Nothing
' Enumerate and refresh all the frames
Do While pEnumerator.Next(1, pUnk) = 0
On Error Resume Next
' Clear errors
Err.Clear
' Get the IWebBrowser2 interface
Set pBrowser = pUnk
If Err.Number = 0 Then
Debug.Print "Frame: " & pBrowser.LocationURL
End If
Loop
Set pEnumerator = Nothing
End If
End Sub
=======================================================================================