冲击多个Input File赋值兼解决中文赋值问题

来源:互联网 发布:淘宝 大类目小类目 编辑:程序博客网 时间:2024/05/01 02:56
 

冲击多个Input File赋值兼解决中文赋值问题

转载地址:http://www.blogjava.net/supercrsky/archive/2008/09/05/227275.html

网上搜索了半天也没有完整的解决方案。
用此方法需要添加到信任站点或解除未签名的ActiveX控件的禁用

项目需求是自动搜索客户端的图片,找到合适的自动上传(理论上能上
传任何东西)前提就是上面提到的.
用这个方法经测试成功.上传OK!(注意不安全哟,不要用此做坏事哟,
此源码只做交流,请不要用于非法用途)

大概写一下流程:


<HTML>
 
<HEAD>
  
<TITLE> 冲击多个Input File赋值兼解决中文赋值问题 </TITLE>
<SCRIPT LANGUAGE="JavaScript">
//简化写法
function $(id)
{
    
return document.getElementById(id);
}

//崋值方法(就是将文本框的值赋值file对象)
function set1()
{
    
//将text1中的值复制到剪贴板中
    window.clipboardData.setData('text',$('t1').value); 
    
//创建Shell(需要添加到信任站点或解除未签名的ActiveX控件的禁用
    var   WshShell=new   ActiveXObject("WScript.Shell");  
    
//拿到焦点
    $('f1').focus();
    
//Ctrl + A 操作
    WshShell.sendKeys("^a");
    
//Ctrl + V 操作(sendKeys对于中文赋值操作显得无力,所以只能模拟键盘操作)
    WshShell.sendKeys("^v");
}


function set2()
{
    window.clipboardData.setData('text',$('t2').value); 
    
var   WshShell=new   ActiveXObject("WScript.Shell");  
    $('f2').focus();
    WshShell.sendKeys(
"^a");
    WshShell.sendKeys(
"^v");
}


function set3()
{
    window.clipboardData.setData('text',$('t3').value); 
    
var   WshShell=new   ActiveXObject("WScript.Shell");  
    $('f3').focus();
    WshShell.sendKeys(
"^a");
    WshShell.sendKeys(
"^v");
}


function set4()
{
    window.clipboardData.setData('text',$('t4').value); 
    
var   WshShell=new   ActiveXObject("WScript.Shell");  
    $('f4').focus();
    WshShell.sendKeys(
"^a");
    WshShell.sendKeys(
"^v");
}

//给当前网页中四个file对象赋值的方法
function set()
{
    
//此处不要用循环,有几个就需要写几个setXX方法
    setTimeout("set1()",0);
    setTimeout(
"set2()",70);
    setTimeout(
"set3()",240);
    setTimeout(
"set4()",340);
}

//检查是否赋值成功
function check()
{
    
//检查每个file对象是否为空 
    if($('f1').value.length > 0 && $('f2').value.length > 0 && $('f3').value.length > 0 && $('f4').value.length > 0 )
    
{
        
//检查原对象的值的赋值对象的值是否相同
        if($('f1').value == $('t1').value && $('f2').value == $('t2').value && $('f3').value == $('t3').value && $('f4').value == $('t4').value)
        
{
            
return true;
        }

        
else
        
{
            
return false;
        }

    }

    
else
    
{
        
return false;
    }

}

//赋值和file对象的检查
function setValues()
{
    
if(!check())
    
{
        set();
    }

}

//直接调用的赋值方法
function callSet()
{
    
//一定要用setInterval,而不能用循环(循环太快,会造成所有的值赋在一个file对象上)
    setInterval('setValues()',1000);
}


 
</SCRIPT>
 
</HEAD>

 
<BODY>
    
<input type=text value='c:\a好.jpg' id='t1' /> <br />
    
<input type=text value='b:\b不好.jpg' id='t2'/> <br />
    
<input type=text value='c:\c好.jpg' id='t3'/> <br />
    
<input type=text value='d:\c很好.jpg' id='t4'/> <br />

    
<input type=file id='f1'/> <br />
    
<input type=file id='f2'/> <br />
    
<input type=file id='f3'/> <br />
    
<input type=file id='f4'/> <br />
    
    
<input type='button' id='btn1' onclick='callSet();' value='测试'>
 
</BODY>
</HTML>
原创粉丝点击