webbrower执行script问题

问题描述

做一个获取网页检索信息的软件,检索内容出现后需要通过按钮切换到固定显示模式,对于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>&nbsp;<tr><tdclass=td1>&nbsp;</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

时间: 2024-09-29 00:44:56

webbrower执行script问题的相关文章

$(function(){})和&amp;amp;lt;script&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;代码的区别?

问题描述 js新手,对于$(function(){})和<script></script>里放代码有什么区别啊??谢谢 解决方案 $(function(){}) 是$(document).ready() 的简写 onload需要页面上所有的资源都加载上之后执行,而ready则是DOM文档树已经解析完成时,说ready比onload快最显著的是比如一个页面上有一个很大的图片,加载要好久,onload只有在图片加载完成之后执行,而ready不必等图片加载完成解决方案二:在$(funct

浅谈js在html中的加载执行顺序,多个jquery ready执行顺序_javascript技巧

jQuery $(document).ready()执行顺序: 当页面DOM 元素全部加载完毕后就执行.ready().$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 如果在.ready()执行之前有javascript代码存在,那么javascript将怎么执行呢? 答案是先执行.ready()之前的javascript代码,然后执行.ready(). 多个$(document).ready()的执行顺序并非单纯的顺序执行,其与嵌套层级也有一定的关系.

详解PHP执行定时任务的实现思路_php技巧

PHP本身是没有定时功能的,PHP也不能多线程.PHP的定时任务功能必须通过和其他工具结合才能实现,例如WordPress内置了wp-cron的功能,很厉害. 一.Linux服务器上使用CronTab定时执行php 我们先从相对比较复杂的服务器执行php谈起.服务器上安装了php,就可以执行php文件,无论是否安装了nginx或Apache这样的服务器环境软件.而Linux中,使用命令行,用CronTab来定时任务,又是绝佳的选择,而且也是效率最高的选择. 首先,进入命令行模式.作为服务器的li

js算法-求一个JS算法,30s没执行成功,则1分钟后继续执行,。。。直到执行成功

问题描述 求一个JS算法,30s没执行成功,则1分钟后继续执行,...直到执行成功 执行一件事,如果没成功,则每过一段时间后自动执行,直到成功 解决方案 <script language=javascript> var int=self.setInterval("dothings()",1000)//1秒1次 function dothings() { if(true){//如果执行成功 clearInterval(int);//关闭定时执行 } } </script

请教,如何可以执行通过AJAX取回的服务器端页面的代码

问题描述 现在要需求,通过AJAX取回一个JAVASCRIPT生成的内容,取回来之后发现内容并未生成(javascript不执行),请问象这种情况怎么办?有没有办法在客户端执行通过ajax从服务器端取回来的javascript代码片断呢?谢谢 解决方案 恩,确实需要eval一下解决方案二:另外,mootools也有类似evalScripts的方法如果既不想用mootools也不想用prototype,想执行response的html的script,就可以用dom方法getByTagName("s

javascript中含有defer属性在IE下的执行顺序

defer现象描述  代码如下 复制代码 <HTML><HEAD><TITLE>JavaScript defer attribute test page - tests deferring scripts in browsers</TITLE> <SCRIPT language=JavaScript type=text/javascript>   <!--  var msg = "";  //-->   </

Html中JS脚本执行顺序简单举例说明_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

【Linux学习 】Linux使用Script命令来记录并回放终端会话

[TOC] 一.背景 在之前的博客 [Git学习-->如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?] 里面,我已经详细记录了每天的自动备份与清理过期备份文件的工作. 1.每天凌晨2点在Gitlab服务器上执行Gitlab备份功能. 2.每天凌晨3点在Gitlab服务器上执行scp命令将最新的Gitlab备份文件复制到远程的文件备份服务器. 3.每天凌晨4点在远程的文件备份服务器上检测备份文件的时间,自动删除超过7天的备份文件. 这个脚本从8月18日开始运

LABJS按需动态加载js文件

  为了提高页面的打开和加载速度,我们经常把JS文件放在页面的尾部,但是有些JS必须放在页面前面,这样就会增加页面的加载时间;于是出现了按需动态加载的概念,这个概念就是当页面需要用到这个JS文件或者CSS渲染文件的时候,在去请求这些文件,这样就节省了页面的加载时间 LABjs 是一个很小的 JavaScript 工具,用来根据需要加载 JavaScript 文件,通过使用该工具可以提升页面的性能,避免加载不需用到的 JavaScript 文件,可以实现动态并行加载脚本文件,以及管理加载脚本文件的