IE8 вызывает пустую запись ввода FILE через SendKeys - PullRequest
0 голосов
/ 10 июня 2009

Приложение : HTA (следовательно, IE) Это приложение, которое использует SendKeys для заполнения поля ввода FILE.

Проблема : файл никогда не загружается.

Описание : закадровая форма (невидимая для пользователя) загружает файл на сервер. Ввод файла вводится через SendKeys (javascript). Кажется изолированным, когда IE8 установлен.


Кто-нибудь знает, что может быть причиной этого и каких-либо обходных путей?

Извините за недостаток информации. Я отредактирую вопрос с дополнительной информацией, если ответы не будут предоставлены.

Ответы [ 3 ]

1 голос
/ 25 июня 2009

IE8 установил элемент только для чтения, чтобы предотвратить атаки безопасности. (см. статья ).

Поэтому программный способ невозможен.

1 голос
/ 23 апреля 2011

Я действительно решил эту проблему с помощью интересного трюка. Вот как ...

Создайте внешний файл включения «vbscript» с именем «vbshelper.inc», который содержит следующий код:

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 в пробелах: C: \ Temp \ *. Txt ~ 'и тильдой (~) после .txt.]

[Примечание-2 Я должен был указать Script type = VBScript, а не type = "text / vbscript". Я не уверен, почему это требуется.]


позже, в вашем HTML-коде создайте такую ​​кнопку ...

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

[Примечание-3: я пытался вызвать функцию stuffKeys прямо из команды onclick, но она не сработала. Возможно, потому что вы должны использовать одинарные кавычки вокруг строки папки.]

Итак ... Вы не можете создать объект WScript на странице HTML или HTA, но он работает, когда на него ссылаются из внешнего включаемого файла. Храните файл vbshelper.inc в той же папке, что и файл HTML или HTA.

0 голосов
/ 10 июня 2009

Можно ли использовать режим совместимости в IE8 в качестве обходного пути?

...