Тема: HTA: Drag & Drop файлов
Пытался победить самостоятельно задачу перетаскивания файлов на форму HTA, но не смог.
В том методе, который я собрал из всевозможных примеров, обрабатываются только текст и ссылки, так как по запросу Window.Event.DataTransfer возвращается объект типа IHTMLDataTransfer.
При перетаскивании файлов сами события генерируются, но информации о них никакой не возвращается (или я не смог её получить).
<html>
<head>
<meta http-equiv=Content-Type Content="text-html; charset=1251">
<hta:application
id=Drop
applicationName='Drop'
maximizeButton=yes
innerBorder=yes
border=thick
scroll=auto
selection=yes
contextMenu=yes
singleinstance=yes
sysMenu=yes
version=0.0.1
>
<title>Drop</title>
<style type="text/css">
.block1
{
width: 200px;
height: 200px;
background: gray;
padding: 5px;
padding-right: 20px;
border: solid 1px black;
float: left;
text-align: center;
font-size: 50;
}
.block2
{
width: 200px;
height: 200px;
background: gray;
padding: 5px;
border: solid 1px black;
float: left;
position: relative;
top: 40px;
left: -70px;
text-align: center;
font-size: 50;
}
.info
{
width: 450px;
height: 30px;
padding: 5px;
border: solid 1px black;
float: left;
position: relative;
top: 80px;
left: 5px;
text-align: center;
}
</style>
</head>
<body>
<textarea cols="50" rows="1">Текст для перетаскивания</textarea>
<br><a href="http://forum.script-coding.com/">Ссылка для перетаскивания</a>
<div id="div1" class="block1">div1</div>
<div id="div2" class="block2">div2</div>
<br>
<table id="info" class="info" border="1">
<tr><td width="33%"><b>div1:</b></td><td width="33%" id="Event1"> </td><td width="33%" id="Time1"> </td></tr>
<tr><td><b>div2:</b></td><td id="Event2" title="Последнее событие"> </td><td id="Time2"> </td></tr>
<tr>
<td id="TypeDataTransfer" title="TypeName(Window.Event.DataTransfer)"> </td>
<td id="TypeURL" title="TypeName(DataURL), DataURL"> </td>
<td id="TypeText" title="TypeName(DataTXT), DataTXT"> </td>
</tr>
</table>
</body>
</html>
<script language="VBS">
Option Explicit
Window.ResizeTo 500,500
Sub GetInfo()
Dim DataTXT,DataURL
TypeDataTransfer.InnerHtml=TypeName(Window.Event.DataTransfer)
DataTXT=Window.Event.DataTransfer.GetData("Text")
DataURL=Window.Event.DataTransfer.GetData("URL")
TypeURL.InnerHtml=TypeName(DataURL) & ", " & DataURL
TypeText.InnerHtml=TypeName(DataTXT) & ", " & DataTXT
End Sub
Sub div1_OnDragEnter()
Event1.InnerHtml="OnDragEnter"
Time1.InnerHtml=Now
div1.Style.Background="Cyan"
Window.Event.ReturnValue=False
GetInfo
End Sub
Sub div1_OnDragLeave()
Event1.InnerHtml="OnDragLeave"
Time1.InnerHtml=Now
div1.Style.Background="Gray"
Window.Event.ReturnValue=False
GetInfo
End Sub
Sub div1_OnDragOver()
Event1.InnerHtml="OnDragOver"
Time1.InnerHtml=Now
Window.Event.ReturnValue=False
GetInfo
End Sub
Sub div1_OnDrop()
Event1.InnerHtml="OnDrop"
Time1.InnerHtml=Now
Window.Event.ReturnValue=False
GetInfo
div1.Style.Background="Red"
SetTimeout "SetGray(1)", 2000, "VBScript"
End Sub
Sub div2_OnDragEnter()
Event2.InnerHtml="OnDragEnter"
Time2.InnerHtml=Now
div2.Style.Background="Cyan"
Window.Event.ReturnValue=False
GetInfo
End Sub
Sub div2_OnDragLeave()
Event2.InnerHtml="OnDragLeave"
Time2.InnerHtml=Now
div2.Style.Background="Gray"
Window.Event.ReturnValue=False
GetInfo
End Sub
Sub div2_OnDragOver()
Event2.InnerHtml="OnDragOver"
Time2.InnerHtml=Now
Window.Event.ReturnValue=False
GetInfo
End Sub
Sub div2_OnDrop()
Event2.InnerHtml="OnDrop"
Time2.InnerHtml=Now
Window.Event.ReturnValue=False
GetInfo
div2.Style.Background="Red"
SetTimeout "SetGray(2)", 2000, "VBScript"
End Sub
Sub SetGray(Num)
Document.GetElementById("div" & Num).Style.Background="Gray"
End Sub
</script>
Если знаете рабочий способ, помогите пожалуйста.