应用程序:HTA(因此IE)这是一个使用SendKeys填充FILE输入字段的应用程序。
问题:永远不会上传文件。
说明:屏幕外表单(用户不可见)将文件上传到服务器。通过SendKeys(javascript)输入文件输入。安装IE8时似乎被隔离。
是否有人知道可能导致此问题和解决方法的原因?
很抱歉缺少信息。如果没有提交答案,我将使用其他信息编辑问题。
答案 0 :(得分:1)
IE8设置了< input type =“file”>元素为只读以防止安全攻击。 (见article)。
因此无法采用编程方式。
答案 1 :(得分:1)
我实际上用一个有趣的技巧解决了这个问题。这是怎么......
创建一个名为'vbshelper.inc'的外部vbscript'include文件',其中包含以下代码:
function stuffKeys(x)
Set wshShell = CreateObject("WScript.Shell")
wshShell.Sendkeys(x)
end function
在HTML代码标题中,将以下行放在第一行<脚本>元件...
<Script language="VBScript" src="vbshelper.inc">
function defaultFldr()
stuffKeys(" C:\Temp\*.txt~")
end function
function do_something()
.
.
. etc
end function
</Script>
[注意 - 1在'C:\ Temp \ * .txt~'中的C之前有一个空格,在.txt之后有一个波浪号(〜)。
[注意 - 2我必须指定脚本类型= VBScript而不是type =“text / vbscript”。我不确定为什么这是必需的。]
稍后,在您的HTML代码中,创建像这样的按钮......
<input type="File" id="srcFile" onchange="do_something()" onclick="defaultFldr()">
[注3:我试图从onclick命令调用stuffKeys函数,但它没有用。可能是因为你必须在文件夹字符串周围使用单引号。]
所以......你不能在HTML或HTA页面中创建WScript对象,但是当从外部包含文件引用时它可以工作。将'vbshelper.inc'文件保存在与HTML或HTA文件相同的文件夹中。
答案 2 :(得分:0)
是否可以在IE8中使用兼容模式作为解决方法?