应用: :HTA(因此 IE) 这是一个使用 SendKeys 填充 FILE 输入字段的应用程序。

问题: :文件从未上传。

描述: :屏幕外表单(用户不可见)将文件上传到服务器。文件输入是通过 SendKeys (javascript) 输入的。安装 IE8 时似乎被隔离。


有谁知道可能导致此问题的原因以及任何解决方法?

抱歉,缺乏信息。如果没有提交答案,我将使用附加信息编辑问题。

有帮助吗?

解决方案

IE8已经设置了元素为只读,以防止安全攻击。 (见文章)。

因此以编程的方式是不可能的。

其他提示

我实际上用一个有趣的技巧解决了这个问题。就是这样...

创建一个名为“vbshel​​per.inc”的外部 vbscript“包含文件”,其中包含以下代码:

function stuffKeys(x)
    Set wshShell = CreateObject("WScript.Shell")
    wshShell.Sendkeys(x)
end function

在 HTML 代码标头中,将以下行作为第一个 < Script> 元素...

<Script language="VBScript" src="vbshelper.inc">

 function defaultFldr()
    stuffKeys(" C:\Temp\*.txt~")
 end function

function do_something()
.
.
. etc
end function

</Script>

[注-1 ' C: emp\*.txt~' 中的 C 之前有一个空格,.txt 后面有一个波形符 ( ~ )。]

[Note-2 我必须指定 Script type=VBScript 而不是 type="text/vbscript"。我不确定为什么需要这样做。]


稍后,在您的 HTML 代码中,创建这样的按钮...

<input type="File" id="srcFile" onchange="do_something()" onclick="defaultFldr()">

[注3:我尝试直接从 onclick 命令调用 stuffKeys 函数,但它不起作用。可能是因为您必须在文件夹字符串周围使用单引号。]

所以...您无法从 HTML 或 HTA 页面中创建 WScript 对象,但它在从外部包含文件引用时可以工作。将“vbshel​​per.inc”文件保存在与 HTML 或 HTA 文件相同的文件夹中。

是否有可能使用兼容模式中IE8作为一个变通?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top