第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

怎樣用js對(duì)一個(gè)textarea中的文本實(shí)現(xiàn)拖拽呢?

怎樣用js對(duì)一個(gè)textarea中的文本實(shí)現(xiàn)拖拽呢?

郎朗坤 2019-04-19 16:29:26
舉個(gè)例子,想要實(shí)現(xiàn)這種效果:里面有200個(gè)字,我用鼠標(biāo)選中第20-36個(gè)字,然后把它拖放到第60字的位置。這個(gè)功能在notepad2.exe中早就實(shí)現(xiàn)了,而我希望在textarea中實(shí)現(xiàn)它。我這么寫:document.addEventListener("dragover",function(e){e.stopPropagation();e.preventDefault();},false);Editor.addEventListener("dragover",function(e){e.stopPropagation();e.preventDefault();//該如何在鼠標(biāo)拖動(dòng)過(guò)程中定位文本插入點(diǎn)呢?},false);//Editor引用那個(gè)Editor.addEventListener("dragstart",function(e){console.log(e.type);varstartPos=Editor.selectionStart,endPos=Editor.selectionEnd;vartmpStr=Editor.value;varword=tmpStr.substring(startPos,endPos);//console.log(word);取得選中的文本},false);Editor.addEventListener("drop",function(e){e.stopPropagation();e.preventDefault();if(e.dataTransfer.types=='text/plain'){//現(xiàn)在問(wèn)題在這里了,drop的時(shí)候無(wú)法取得鼠標(biāo)放開(kāi)時(shí)在文本中的位置(即插入點(diǎn)位置)。怎么辦呢?}},false);如果這能實(shí)現(xiàn),我還希望實(shí)現(xiàn):按住Ctrl的情況下拖拽文本,實(shí)現(xiàn)復(fù)制文本到另一個(gè)位置的功能。
查看完整描述

2 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

啊,我終于發(fā)現(xiàn)在自己寫的在線編輯器中不能拖放文本的原因所在了:因?yàn)槲覍?duì)dragover事件和drop事件都用了e.stopPropagation();e.preventDefault();我至所以要這么做,是為了能夠用拖放的方式上傳文件。
但是這樣一來(lái),所有的dragover和drop事件都被e.stopPropagation();e.preventDefault();了。
現(xiàn)在我修改了一下,把它改成這樣:
document.addEventListener("dragover",function(e){
e.stopPropagation();if(e.dataTransfer.types=="Files")e.preventDefault();
},false);
Editor.addEventListener("dragover",function(e){
e.stopPropagation();if(e.dataTransfer.types=="Files")e.preventDefault();
},false);//Editor引用那個(gè)
    

舉報(bào)

0/150
提交
取消