一JS编写的网页,用VIEPAGE查看出的某个按钮源码:
<TD class=tablelstyle id=TD_ID_702 noWrap align=middle width=78>
<SCRIPT language=javwscript><!--
var aclass="cn_12px_white";
if(currentMenuName="702"){aclass="cn_12px_blue";}
document.writeln(" <a id=\"A_ID_702\" class="+aclass+"href=\"#\'onclick=\"javascript:FUNC_MENUBAR_MENU_CLICK('702','childmenu','','');
return false;\"> <center>申报 <center> <a>');
//-->
</SCRIPT>
<A class=cn_12px_white id=A_ID_702 onclick="javascript:FUNC_MENUBAR_MENU_CLICK('702',childmenu,'','',"
);return false;"href="#">
"> <center>申报 <center> </A> </TD>就是点击这个“申报”出现下一个节点,我用
document.name="申报" then 点击不行 name=702或A_ID_702都不行
Set vDoc = WebBrowser1.Document vDoc.All("TD_ID_702").Click 也不中
vDoc.A_ID_702.click()还不行
应该怎么写点击它的代码??要不那位高手说下怎么用VB直接把JS的语句运行?
<TD class=tablelstyle id=TD_ID_702 noWrap align=middle width=78>
<SCRIPT language=javwscript><!--
var aclass="cn_12px_white";
if(currentMenuName="702"){aclass="cn_12px_blue";}
document.writeln(" <a id=\"A_ID_702\" class="+aclass+"href=\"#\'onclick=\"javascript:FUNC_MENUBAR_MENU_CLICK('702','childmenu','','');
return false;\"> <center>申报 <center> <a>');
//-->
</SCRIPT>
<A class=cn_12px_white id=A_ID_702 onclick="javascript:FUNC_MENUBAR_MENU_CLICK('702',childmenu,'','',"
);return false;"href="#">
"> <center>申报 <center> </A> </TD>就是点击这个“申报”出现下一个节点,我用
document.name="申报" then 点击不行 name=702或A_ID_702都不行
Set vDoc = WebBrowser1.Document vDoc.All("TD_ID_702").Click 也不中
vDoc.A_ID_702.click()还不行
应该怎么写点击它的代码??要不那位高手说下怎么用VB直接把JS的语句运行?
vDoc.getElementById("A_ID_702").click
getElementById这要引用什么才能工作?
实时错误91
对象变量或with块变量未设置
<META http-equiv=Content-Language content=zh-cn>
<META content="Microsoft FrontPage 6.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId>
<META http-equiv=Content-Type content="text/html; charset=GBK"><BASE target=contents><LINK href="pages/menu/style/style.css" type=text/css rel=stylesheet></HEAD>
<BODY text=#000000 leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top width="100%" background=pages/menu/files/top_bg.jpg height=73>
<TABLE cellSpacing=0 cellPadding=0 width=1005 align=left border=0>
<TBODY>
<TR>
<TD background=pages/menu/files/top01.jpg height=73>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="20%"> </TD>
<TD vAlign=top width="54%">
<DIV align=center>申报征收平台</DIV></TD>
<TD align=middle width="26%"> <A class=T_song12_wt href="../FirstPageAction.do?method=firstPage" target=_top><IMG height=14 src="pages/menu/files/m_02.gif" width=16 align=absBottom border=0><FONT color=#000000> 首页</FONT></A> <SPAN class=cn_12px_white> <A class=T_song12_wt onclick=closewin(); href="#" target=_top><IMG height=16 src="pages/menu/files/m_12.gif" width=16 align=absBottom border=0> 关闭 </A></SPAN></TD></TR>
<TR>
<TD> </TD>
<TD> </TD>
<TD> </TD></TR>
<TR>
<TD> </TD>
<TD colSpan=2 height=23>
<FORM name=MENU_FORM method=post></FORM>
<SCRIPT language=javascript>
<!--
var realSize = -1;
var count = -1;
var lastindex = -1;
function FUNC_MENUBAR_MENU_INIT(){
realSize = screen.width-0;
if (473>realSize){
realSize = realSize-0;
count = Math.floor((realSize+1)/79);
}
if (count != -1)
lastindex = 2 * count - 2;
}
var currentMenuName = "";
function FUNC_MENUBAR_MENU_CLICK(menuName, aimFrm, menuLocation, menuTarget){
var tdelement,aelement;
if (currentMenuName != ""){
tdelement=document.all("TD_ID_"+currentMenuName);
aelement=document.all("A_ID_"+currentMenuName);
if (tdelement != null)
tdelement.className = "table1style";
if (aelement != null)
aelement.className = "cn_12px_white";
}
currentMenuName = menuName;
tdelement=document.all("TD_ID_"+currentMenuName);
aelement=document.all("A_ID_"+currentMenuName);
if (tdelement != null)
tdelement.className = "table2style";
if (aelement != null)
aelement.className = "cn_12px_blue";
if (menuLocation != ""){
document.all("MENU_FORM").action="/webroot/sbzs/controller.do?location="+menuLocation+"&remove=";
document.all("MENU_FORM").target=menuTarget;
document.all("MENU_FORM").submit();
}
if (aimFrm != ""){
var aimobj = top.document.all(aimFrm);
var aimsrc = aimobj.src;
var index = aimsrc.indexOf("?", 0);
if (index == -1)
aimsrc = aimsrc + "?" + "parentName" + "=" + menuName;
else{
index = aimsrc.indexOf("parentName", index);
if (index == -1)
aimsrc = aimsrc + "&" + "parentName" + "=" + menuName;
else{
aimsrc = aimsrc.substring(0, index);
aimsrc = aimsrc + "parentName" + "=" + menuName;
}
}
aimobj.src=aimsrc;
}
}
document.onload=FUNC_MENUBAR_MENU_INIT();FUNC_MENUBAR_MENU_CLICK('701', 'childmenu', '', '');
//-->
</SCRIPT><TABLE class="" height=23 cellSpacing=0 cellPadding=0 width=realSize border=0>
<TBODY>
<TR>
<SCRIPT language=javascript>
<!--
var tdclass = "table1style";
var aclass = "cn_12px_white";
if (currentMenuName == "701"){
tdclass = "table2style";
}
if (count > -1 && 0 >= count){
document.writeln("<td id=\"TD_ID_701\" style=\"display:none\" width=\"78\" class="+tdclass+"align=\"center\" nowrap>");
}else{
document.writeln("<td id=\"TD_ID_701\"width=\"78\" class=\""+tdclass+"\" align=\"center\" nowrap>");
}
//-->
</SCRIPT><TD class=table2style id=TD_ID_701 noWrap align=middle width=78>
<SCRIPT language=javascript>
<!--
var aclass = "cn_12px_white";
if (currentMenuName == "701"){
aclass = "cn_12px_blue";
}
document.writeln("<a id=\"A_ID_701\" class="+aclass+" href=\"#\" onclick=\"javascript:FUNC_MENUBAR_MENU_CLICK('701', 'childmenu', '', '');return false;\"><center>申报</center></a>");
//-->
</SCRIPT>
<A class=cn_12px_blue id=A_ID_701 onclick="javascript:FUNC_MENUBAR_MENU_CLICK('701', 'childmenu', '', '');return false;" href="#">
<CENTER>申报</CENTER></A></TD>{不能全部放下源码,中间的都一样,我省了}
<TD class=table1style id=TD_ID_706 noWrap align=middle width=78>
<SCRIPT language=javascript>
<!--
var aclass = "cn_12px_white";
if (currentMenuName == "706"){
aclass = "cn_12px_blue";
}
document.writeln("<a id=\"A_ID_706\" class="+aclass+" href=\"#\" onclick=\"javascript:FUNC_MENUBAR_MENU_CLICK('706', 'childmenu', '', '');return false;\"><center>查询</center></a>");
//-->
</SCRIPT>
<A class=cn_12px_white id=A_ID_706 onclick="javascript:FUNC_MENUBAR_MENU_CLICK('706', 'childmenu', '', '');return false;" href="#">
<CENTER>查询</CENTER></A></TD>
<TD width=2048></TD></TR></TBODY></TABLE>
<SCRIPT language=javascript>
<!--
var iFirst = 0;
var iLast = lastindex;
var ids = new Array(11);
ids[0] = "TD_ID_701";
ids[1] = "SEP_ID_702";
ids[2] = "TD_ID_702";
ids[3] = "SEP_ID_703";
ids[4] = "TD_ID_703";
ids[5] = "SEP_ID_704";
ids[6] = "TD_ID_704";
ids[7] = "SEP_ID_705";
ids[8] = "TD_ID_705";
ids[9] = "SEP_ID_706";
ids[10] = "TD_ID_706";
function next(){
if (count == -1)
return;
if (iLast>=ids.length-1) return;
document.all.item(ids[++iLast]).style.display="";
document.all.item(ids[++iLast]).style.display="";
document.all.item(ids[iFirst++]).style.display="none";
document.all.item(ids[iFirst++]).style.display="none";
}
function prior(){
if (count == -1)
return;
if (iFirst<=0) return;
document.all.item(ids[iLast--]).style.display="none";
document.all.item(ids[iLast--]).style.display="none";
document.all.item(ids[--iFirst]).style.display="";
document.all.item(ids[--iFirst]).style.display="";
}
function isRollShow(){
if (count == -1)
return false;
else
return true;
}
//-->
</SCRIPT>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>大虾,HELPME,我要疯了。。
<html>
<head>
<title>
个人工作台-[李峰]
</title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
<script language="javascript">
<!--
wWidth = window.screen.width;if (wWidth*1<=1024) {
document.write("<frameset name='n' frameborder='NO' cols='0,1008,*'>");
} else {
lWidth = (wWidth-1008)/2-1;
document.write("<frameset name='n' frameborder='NO' cols='"+lWidth+",1008,*'>");
}
//-->
</script> <frame name="left" scrolling="NO" noresize src=""/>
<frameset rows="74,*,23" frameborder="NO" border="0" framespacing="0">
<frame name="rootmenu" scrolling="NO" noresize src="/webroot/sbzs/rootmenu.do"/>
<frameset id="Child" cols="182,9,*" frameborder="NO" border="0" framespacing="0" rows="*">
<frame name="childmenu" frameborder="NO" border="0" framespacing="0" scrolling="no" noresize src="/webroot/sbzs/childmenu.do"/>
<frame name="menubar" frameborder="NO" border="0" framespacing="0" scrolling="no" noresize src="menu/MenuBar.jsp"/>
<frame name="pagearea" frameborder="NO" border="0" framespacing="0" scrolling="yes" noresize src="/webroot/sbzs/viewpage.do"/>
</frameset>
<frame name="bottom" scrolling="NO" noresize src="menu/Bottom.jsp"/>
</frameset> <frame name="right" scrolling="NO" noresize src=""/><noframes>
<body bgcolor="#FFFFFF" text="#000000">
</body>
</noframes>
</html>取大框架的源码
<FRAMESET border=0 frameSpacing=0 rows=74,*,23 frameBorder=NO><FRAME name=rootmenu src="/webroot/sbzs/rootmenu.do" noResize scrolling=no><FRAMESET id=Child border=0 frameSpacing=0 rows=* frameBorder=NO cols=182,9,*><FRAME border=0 name=childmenu frameSpacing=0 src="/webroot/sbzs/childmenu.do?parentName=701" frameBorder=NO noResize scrolling=no><FRAME border=0 name=menubar frameSpacing=0 src="menu/MenuBar.jsp" frameBorder=NO noResize scrolling=no><FRAME border=0 name=pagearea frameSpacing=0 src="/webroot/sbzs/viewpage.do" frameBorder=NO noResize scrolling=yes></FRAMESET><FRAME name=bottom src="menu/Bottom.jsp" noResize scrolling=no></FRAMESET>主框架的源码
<FRAME name=rootmenu src="/webroot/sbzs/rootmenu.do" noResize scrolling=no>应该就这些了吧,今天晚了去不了办公室,你先帮看下,谢谢
html = 源代码
link = Split(Split(html, "onclick=")(1), """")(1)
Webbrowser1.Navigate link
html=document.writeln(" <a id=\"A_ID_702\" class="+aclass+"href=\"#\'onclick=\"javascript:FUNC_MENUBAR_MENU_CLICK('702','childmenu','','')
Private frmDenied As Long
以下两个过程与上述变量放在一个模块中:
Private Sub Command2_Click()
Dim wbDoc As HTMLDocument
Dim blnClicked As Boolean, MyId as String
MyId = "A_ID_702"
frmDenied = 0
Set wbDoc = WebBrowser1.Document
If (Not wbDoc Is Nothing) And WebBrowser1.LocationURL <> "about:blank" Then
blnClicked = ClickTheId(wbDoc, MyId)
If blnClicked Then
MsgBox "The element was clicked.", , "Result"
Else
MsgBox "The element with the specified ID was not found." & _
IIf(frmDenied, "This could be caused by denied access." & _
vbCrLf & "Access to " & frmDenied & " frames was denied!", ""), vbExclamation, "Result"
End If
End If
End SubFunction ClickTheId(TheDocument As HTMLDocument, TheId As String) As Boolean
Dim ElWithId As Object, oFrame As IHTMLWindow2, oDoc As HTMLDocument, i As Long, bClicked As Boolean
Set ElWithId = TheDocument.getElementById(TheId)
If Not ElWithId Is Nothing Then
On Error Resume Next
ElWithId.focus
On Error GoTo 0
ElWithId.Click
Set ElWithId = Nothing
ClickTheId = True
ElseIf TheDocument.frames.length > 0 Then
For i = 0 To TheDocument.frames.length - 1
Set oFrame = TheDocument.frames(i)
On Error Resume Next
Set oDoc = oFrame.Document
If Err.Number = 70 Then
frmDenied = frmDenied + 1
MsgBox "Error # " & Err.Number & ", " & Err.Description & vbCrLf & _
"Source: " & Err.Source, , "Error"
Else
bClicked = ClickTheId(oDoc, TheId)
If bClicked Then ClickTheId = True: Exit Function
End If
Next i
ClickTheId = False
Else
ClickTheId = False
End If
End Function
在WebBrowser1所在的Form上建一个按钮,命名为Command2,这样单击该按钮的时候就会触发上面的第一个过程进行事件处理;在第一个过程中将会调用后一个Function完成指定的模拟单击动作。为了帮助你分析相关问题,有关MsbBox的信息提示部分我保留了,以后如果觉得不必要,可以根据需要将它们注释掉。
\"javascript:FUNC_MENUBAR_MENU_CLICK('702','childmenu','','');return false;\"
还是要去掉双引号和\??
http://topic.csdn.net/u/20090517/19/19503fd1-b1fe-430e-a54d-9c449e5cb5d1.html
贴子也能解决了,请去回下接分,这个贴子我等下狼兄的回复
);return false;"href="#">
"> <center>申报 <center> </A>这样的元素定义HTML源码代入html = 源代码然后Split(html, "onclick=")将由onclick=分隔的各个部分全部取出放入数组,数组的第一个元素(下标为0)当然就是第一个onclick=左边的部分,在这个例子中就是
<A class=cn_12px_white id=A_ID_702
而在这个例子中,第二个元素(下标为1)就是
"javascript:FUNC_MENUBAR_MENU_CLICK('702',childmenu,'','',"
);return false;"href="#">
"> <center>申报 <center> </A>
这第二个元素由Split(html, "onclick=")(1)便可得到。然后再对第二个元素进行分隔抽取:
Split(Split(html, "onclick=")(1), """")
这一次是将"号作为分隔符来进行抽取,第一个元素就得到第一个"号左边的部分,即为空字符串,而第二个元素(下标为1)就为第一、二个"号之间的部分,即
javascript:FUNC_MENUBAR_MENU_CLICK('702',childmenu,'',''," );return false;
这就是Split(Split(html, "onclick=")(1), """")(1)的值,也即link的值将这一字符串作为一个URL交给IE进行Navigate的时候,因为这一字符串是以javascript:开头,所以IE就把它识别为一行javascript语句,就执行之。如果是把
document.writeln(" <a id=\"A_ID_702\" class="+aclass+"href=\"#\'onclick=\"javascript:FUNC_MENUBAR_MENU_CLICK('702','childmenu','','');
return false;\"> <center>申报 <center> <a>');
这个语句赋给html,得到的将是第一个onclick=之后的两个"号之间的部分,也即
javascript:FUNC_MENUBAR_MENU_CLICK('702','childmenu','','');
return false;\
多了一个\符号,前面的部分虽然能够得到执行,但恐怕会出一点小错误,因\符号即不是一个合法语句开始标识,也不是一个注释的开头,大概IE会报“无效的标识符”之类的小错误吧,但只要确定了,也无大碍。
谢谢!