普通窗口拖放 | richedit 拖放 | web.view 拖放 | web.form 拖放 | web.sciter 拖放 | 文件拖放
/*
普通窗口拖放: https://www.aardio.com/zh-cn/doc/example/Windows/Effects/DnD.html
richedit 拖放: https://www.aardio.com/zh-cn/doc/example/Windows/Edit/oleCallback.html
web.view 拖放: https://www.aardio.com/zh-cn/doc/example/WebUI/web.view/dnd.html
web.form 拖放: https://www.aardio.com/zh-cn/doc/example/WebUI/web.form/dnd.html
web.sciter 拖放: https://www.aardio.com/zh-cn/doc/example/WebUI/Sciter.JS/exchange.html
文件拖放: https://www.aardio.com/zh-cn/doc/example/Windows/Effects/onDropFiles.html
*/
import win.ui;
/*DSG{{*/
var winform = win.form(text="HTMLayout 接收系统拖放";right=599;bottom=399)
winform.add()
/*}}*/
import web.layout;
var wbLayout = web.layout(winform,0xFFFF/*_HL_HANDLE_ALL*/);
namespace web.layout.behavior.sysdnd{
onExchangeDrag = function( ltTarget,ltOwner,x,y,cmd,dataTypes,fetchData,exParams ) {
return true;//返回true表示支持系统拖放
}
onExchangeDrop = function( ltTarget,ltOwner,x,y,cmd,dataTypes,fetchData,exParams ) {
/***
fetchData 参数指定 1/*_HL_EXF_TEXT*/ 接受拖放文本,data 为字符串。
fetchData 参数指定 2/*_HL_EXF_HTML*/ 接受拖放 HTML,data 为字符串表示的 HTML,格式与剪贴板相同(参考 win.clip.html )。
fetchData 参数指定 4/*_HL_EXF_HYPERLINK*/ 接受拖放链接,data 为字符串数组,第一个元素为链接地址,之后依次为提示,显示文本。
fetchData 参数指定 0x10/*_HL_EXF_FILE*/ 接受拖放文件,data 为文件路径数组。
如果调用 fetchData 不指定参数则接收所有拖放类型, dataType 表示类型(可选值为上述 _HL_EXF_ 前缀常量 )
***/
var data,dataType = fetchData( 0x10/*_HL_EXF_FILE*/ );
if( data ) {
wbLayout.getEle("destination").innerHTML = ..string.join(data,"<br>")
return true;
}
}
}
wbLayout.html = /**
<div id="destination" style="behavior:sysdnd;height:100%%;">拖动一个或多个外部文件到这里</div>
**/
winform.show()
win.loopMessage();
Markdown 格式