可以通过JS代码来实现异步调用么?
可以,js有Xmlhttp对象,你搜索一下,网上关于这个对象的应用一堆一堆的不过取回的是网页的html代码,所以你要在这堆代码里找你想要的Input,这个就要通过正则来取比较方便了
不用正则会比较麻烦。
可以,js有Xmlhttp对象,你搜索一下,网上关于这个对象的应用一堆一堆的不过取回的是网页的html代码,所以你要在这堆代码里找你想要的Input,这个就要通过正则来取比较方便了
不用正则会比较麻烦。
1.读取预设值(可以保存在xml中),同步或者异步读取都可以,区别是一个将操作权归还客户端(异步),一个要执行完才能继续客户端操作(同步)
2.依次读取你input的value值
3.对比异步读取的方法是:发送一HTTP请求。或者xml解析,当服务器或者文档加载完以后,就可以得到一个response.对这个response进行操作就行了
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>test </title>
<script>
var defaultValue=[];
function NewInfoAction(){
var xmlDom; //XML DOM object
var xmlFile="testvalue.xml"; //xml file name
var ieFlag="ie"; //default
var isChrome = navigator.userAgent.indexOf('Chrome') != -1;
if(isChrome||!window.event) ieFlag="other"
//----------------------------start: create XML Dom-----------------------------------------
xmlDom=loadXML(xmlFile);
//----------------------------End: create XML Dom-----------------------------------------
//----------------------------start: read XML Dom----------------------------------------- if(ieFlag=="ie"){ //MS IE
var newsList1=xmlDom.documentElement.getElementsByTagName("dvalue");
for(var i=0;i <newsList1.length;i++){
try{
defaultValue[i]=newsList1[i].text;
}
catch(e)
{
alert("error!");
}
}
} if(ieFlag=="other"){//NOT MS IE
var newsList2=xmlDom.getElementsByTagName("dvalue"); for(var j=0;j <newsList2.length;j++){
try{
defaultValue[j]=newsList2[j].textContent;
}catch(e2)
{
alert("error!");
}
}
}
}
loadXML = function(fileRoute){
xmlDoc=null;
if (window.ActiveXObject){
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async=true;//这里设置true就是异步
xmlDoc.load(fileRoute);
}
else if (document.implementation && document.implementation.createDocument){
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",fileRoute,false);//这里设置true就是异步.false是同步
xmlhttp.send(null);
var xmlDoc = xmlhttp.responseXML;
}
else {xmlDoc=null;}
return xmlDoc;
}
function checkvalue(){
var div=document.getElementById("inputtest");
var inputs=div.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++){
if(defaultValue[i]!=inputs[i].value) alert("第"+(i+1)+"个值不等");
}
}
</script>
</head> <body onLoad="NewInfoAction();">
<div id="inputtest">
<input type="text">
<input type="text">
<input type="text">
<input type="text">
<input type="text">
</div>
<input type="button" value="测试" onclick="checkvalue()" />
</body>
</html>
下面是testvalue.xml,和html放一个目录下
<?xml version="1.0" encoding="utf-8" ?>
<defaultvalue>
<dvalue>100</dvalue>
<dvalue>200</dvalue>
<dvalue>300</dvalue>
<dvalue>400</dvalue>
<dvalue>500</dvalue>
</defaultvalue>
对于Beenzfa发的代码
有点类似,不过我很大一部分看不懂。
我只想越简单越好,比如读取某个网页。
www.hao123.com
网页代码里面有一个<input name=sto type=radio value="5">。
我想让JS自动读取后,判断这个INPUT的VALUE是否和我预设的5一致,如果不一致继续读取新的。
如果一直执行下一步?
A网页,是HTML网页,在客户端执行。
通过JS想达到。从A网页执行这个JS函数,自动读取WWW.HAO123.COM页面里面你的<input name=sto type=radio value="5">的VALUE值,并于我实现设置的VAR XX = AA是否一致。如果一直执行下一步。
如果不一致继续读取,直到一致。
所以无论是用frame还是httpRequest,都无法跨域得到hao123的document需要通过调用服务器,比如tomcat,glassfish等