|
導(dǎo)讀網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立... 網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級(jí)文本標(biāo)記語(yǔ)言之所以稱(chēng)為超文本標(biāo)記語(yǔ)言,是因?yàn)槲谋局邪怂^“超級(jí)鏈接”點(diǎn)。 JavaScript如何實(shí)現(xiàn)文件的拖放?本篇文章就來(lái)給大家介紹有關(guān)JavaScript實(shí)現(xiàn)通過(guò)拖放選擇文件的方,下面我們一起來(lái)看看具體的內(nèi)容。
我們來(lái)看一個(gè)示例 代碼如下 SimpleDragDrop.html <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
function handleFileSelect(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files;
var output = [];
for (var i = 0; i < files.length; i++) {
document.getElementById('output').innerHTML += files[i].name + '(' + files[i].size + ') '
+ files[i].lastModifiedDate.toLocaleDateString() + files[i].lastModifiedDate.toLocaleTimeString() + ' - ' + files[i].type + '<br/>';
}
}
function handleDragOver(evt) {
evt.stopPropagation();
evt.preventDefault();
evt.dataTransfer.dropEffect = 'copy';
}
function PageLoad(evt) {
var dropFrame = document.getElementById('DropFrame');
dropFrame.addEventListener('dragover', handleDragOver, false);
dropFrame.addEventListener('drop', handleFileSelect, false);
}
</script>
</head>
<body onload="PageLoad();">
<div id="DropFrame" style="background-color:#b8deff;border:solid 1px #3470ff; width:360px; height:120px;">把文件放在這里。</div>
<div id="output"></div>
</body>
</html>說(shuō)明: 顯示頁(yè)面后,執(zhí)行onload事件的PageLoad()函數(shù)。 在DrawOver中執(zhí)行以下代碼。 function handleDragOver(evt) {
evt.stopPropagation();
evt.preventDefault();
evt.dataTransfer.dropEffect = 'copy';
}在Drop活動(dòng)中執(zhí)行的代碼如下。在事件的第一個(gè)參數(shù)(以下代碼中是evt)的ddataTransfer.files下放文件的一覽并保存。文件的取得與文件選擇箱一樣訪(fǎng)問(wèn)排列的要素,取得文件對(duì)象。在name屬性中保存了文件名,size屬性,文件大小,lastmdifitifielDato的更新時(shí)間。 將獲得的值輸出到id = outpud的標(biāo)簽區(qū)域。 Drop事件中執(zhí)行的代碼如下。在事件的第一個(gè)參數(shù)(以下代碼中是evt)的ddataTransfer.files下放文件的一覽并保存。至于文件的獲取,它訪(fǎng)問(wèn)數(shù)組的元素,如文件選擇框,并獲取文件對(duì)象。文件名存儲(chǔ)在name屬性中,文件大小存儲(chǔ)在size屬性中,更新日期存儲(chǔ)在lastModifiedDate中。 function handleFileSelect(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files;
var output = [];
for (var i = 0; i < files.length; i++) {
document.getElementById('output').innerHTML += files[i].name + '(' + files[i].size + ') '
+ files[i].lastModifiedDate.toLocaleDateString() + files[i].lastModifiedDate.toLocaleTimeString() + ' - ' + files[i].type + '<br/>';
}
}運(yùn)行結(jié)果 運(yùn)行該HTML文件。將顯示如下所示的效果。
淡藍(lán)色區(qū)域中有“把文件放在這里”。將文件從資源管理器拖放到該區(qū)域。文件名,文件名,文件大小,最終更新時(shí)間,MIS類(lèi)型被顯示。
如果您選擇多個(gè)文件并一次顯示它們,將顯示拖放的多個(gè)文件的信息。
補(bǔ)充:還有一種實(shí)現(xiàn)方法,通過(guò)實(shí)現(xiàn)標(biāo)記中的“ondragover”和“ondrop”屬性而不使用addEventListener()。 <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
function handleDragOver(evt) {
evt.stopPropagation();
evt.preventDefault();
evt.dataTransfer.dropEffect = 'copy';
}
function execDrop(evt) {
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files;
var output = [];
for (var i = 0; i < files.length; i++) {
document.getElementById('output').innerHTML += files[i].name + '(' + files[i].size + ') '
+ files[i].lastModifiedDate.toLocaleDateString() + files[i].lastModifiedDate.toLocaleTimeString() + ' - ' + files[i].type + '<br/>';
}
}
</script>
</head>
<body>
<div id="DropFrame" ondragover="handleDragOver(event);" ondrop="execDrop(event);"
style="background-color:#b8deff;border:solid 1px #3470ff; width:360px; height:120px;">把文件放在這里。</div>
<div id="output"></div>
</body>
</html>以上就是JavaScript如何實(shí)現(xiàn)拖放文件的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章! 網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語(yǔ),涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。 |
溫馨提示:喜歡本站的話(huà),請(qǐng)收藏一下本站!