问题描述
做一个获取网页检索信息的软件,检索内容出现后需要通过按钮切换到固定显示模式,对于script执行不太懂,求教,网页代码如下:<spanonclick="shiftfmt(g('fmtname'),'001');g('fmtname').innerHTML=this.innerHTML"id=fmt_marc>MARC格式</span></a>
<script>varfmjson={};varcurfmt='999';functionshiftfmt(obj,name){vartmpobj=obj.parentNode;vartaba=tmpobj.childNodes;for(i=0;i<taba.length;i++){if(taba[i].className=="check"&&taba[i].getAttribute("id")!="fmt_list"){if(g("details2").innerHTML.length>100)fmjson[curfmt]=g("details2").innerHTML;g("details2").innerHTML='<br><tablewidth="90%"border="0"cellspacing="2"><tr><tdclass=td1> <tr><tdclass=td1> </table><br><imgsrc="http://opac.nlc.cn:80/exlibris/aleph/u20_1/alephe/www_f_chi/icon/table_bottom.jpg"style="float:left"border="0"/>';taba[i].className="";}}obj.className="check";curfmt=name;if(fmjson[name]){g("details2").innerHTML=fmjson[name];}else{varurl="http://opac.nlc.cn:80/F/C136UERX7YUI9FNJDIY7Q7N9G5XNDJ19K7X8M31JSURPXSFD1P-16493?func=full-set-set_body&set_number="+g("set_number").value+"&set_entry="+g("set_entry").value+"&format="+name;varhost=location.href.replace(/(/F/.*)/i,'/');url=url.replace(/http://.*?//,host);varrequest=newXMLRequst(url,"get").createXMLRequst();request.onreadystatechange=function(){if(request.readyState==4){if(request.status==200){g("details2").innerHTML='<tablewidth="90%"border="0"cellspacing="2">'+request.responseText+'</table><br><imgsrc="http://opac.nlc.cn:80/exlibris/aleph/u20_1/alephe/www_f_chi/icon/table_bottom.jpg"style="float:left"border="0"/>';}}};request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");request.send(null);}}varissn_tm,fmt_tm;</script>
如何调用这个script?
解决方案
解决方案二:
这个应该不是很难,通过楼主提供的代码我找到了网站http://opac.nlc.cn在网站中简单检索后得到了这样的网页:“MARC格式”是不是要检索的内容呢?通过分析网页找到了代码<spanonclick="shiftfmt(g('fmtname'),'001');g('fmtname').innerHTML=this.innerHTML"id="fmt_marc">MARC格式</span>
“onclick=”后面的就是点击时候要执行的内容,JavaScript语句之间用分号隔开,这段代码包含了两个语句,第一个是“shiftfmt(g('fmtname'),'001');”这就是切换显示内容的语句,是重点。第二条是更改显示标签用的,当我只执行第一句后,页面是这样显示的:由此可以得到,如果只要检索MARC数据可以只执行第一条语句,第二条语句可以忽略。------------------------------以下是简单的例子----------------------------PublicClassForm1PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.Click'执行js代码DimstrScriptAsString="javascript:shiftfmt(g('fmtname'),'001')"WebBrowser1.Navigate(strScript)EndSubPrivateSubButton2_Click(senderAsObject,eAsEventArgs)HandlesButton2.Click'读取数据DimobjDataAsObject=WebBrowser1.Document.GetElementById("details2")DimvdocAsObject=objData.GetElementsByTagName("tr")ForiAsInteger=0Tovdoc.count-1DimstrdAsString=vdoc(i).innerText+vbCrLfTextBox1.AppendText(strd)NextEndSubEndClass