日期:2014-05-16  浏览次数:20354 次

很奇怪的问题!只有运行alert()后,接下来的语句才能执行!
本帖最后由 freeheartsz 于 2011-07-15 00:06:14 编辑
<script>
function ReadText(){
var fso=new ActiveXObject("Scripting.FileSystemObject"); 
var f=fso.opentextfile("C:\\serial no.txt",1,true) 

var content =f.ReadAll();  
for(var i=0;i<=content.split("\r\n").length-1;i++){
alert('123')
document.getElementById('barcode2').value='123'
document.getElementById("barcode2").value=content.split("\r\n")[i];

}

f.close()
keydown()
}
setInterval("ReadText();",3000)

function keydown()
{
           if(document.getElementById("barcode2").value.length>=12) {
           document.getElementById("barcode").value=document.getElementById("barcode2").value.substring(0,12)
           form1.action='fct_barcode_check.asp';
           form1.method='post';
           form1.target='iframepage';
           form1.submit();
           document.getElementById("barcode").value=""
           document.getElementById("barcode2").value=""
       }
}
</script>


遇到一个很奇怪的问题
只有当上面代码中标为红色字体的"alert('123')"加载上时
接下来的蓝色的代码才能运行
如果取消alert('123')则后面的代码死都不运行
第一次碰得这样的问题,请高手帮忙啊!

------解决方案--------------------
function show(){
document.getElementById('barcode2').value='123'
document.getElementById("barcode2").value=content.split("\r\n")[i];
}
setTimeout(show,1000);
这样试下
------解决方案--------------------
纠正下呵呵 试试看

setTimeout((function(content) {
return function() {
for(var i=0;i<=content.split("\r\n").length-1;i++){
document.getElementById('barcode2').value='123';
document.getElementById("barcode2").value=content.split("\r\n")[i];
}
}
})(content),0);