在IE8下,用javascript的ActiveX,通过模拟键盘操控填写file input

前端browser下用javascript提交表单,但是在IE8下没法填写file input的值。

可以通过模拟键盘输入文件路径,并按回车键确认的方法来实现。

原文地址:在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件 

将javascript模拟键盘输入的方法整理了一下,代码如下:

<input type="file" id="fileInput" value=""><br>
模拟键盘操作文件上传控件<input type="button" value="写入" onclick="f('http://pic.cnblogs.com/avatar/a160298.jpg?id=07225917');">
<script language="javascript">
function f(txt){
  var file_input_obj = document.getElementById("fileInput");
  file_input_obj.focus();
  var WshShell=new ActiveXObject("WScript.Shell");
  WshShell.SendKeys("{Tab}");
  WshShell.SendKeys("{ }");
  WshShell.SendKeys(txt);
  WshShell.SendKeys("{Enter}");
}
</script>

运行会有安全警告,自己用的当然就点允许了。

由于某些原因只能用前端的方式采集提交。

之前批量采集添加了几千条不带图片的信息,这下终于可以包括图片了。

分享下 O(∩_∩)O

==========================================

附:貌似模拟键盘操作需要时间,立即提交的话是没有值的。

提交操作还需要在延时判断一下o(︶︿︶)o

原文地址:https://www.cnblogs.com/slowhand/p/2085795.html