哪些vue2開發(fā)中可能的坑

  1. 默認(rèn)鍵盤或者鼠標(biāo)事件的動作
    • 準(zhǔn)備實(shí)現(xiàn):通過Backspace按鍵刪除節(jié)點(diǎn)(8),節(jié)點(diǎn)刪除后减宣,光標(biāo)移動到上一節(jié)點(diǎn)最后
    • 存在問題:刪除節(jié)點(diǎn)(8)后杖们,光標(biāo)移動到上一節(jié)點(diǎn)了,但是上一節(jié)點(diǎn)的最后的文字被吃點(diǎn)一個岭皂,具體見圖
      1.gif
    • 原因分析: 關(guān)鍵是javascript的事件的默認(rèn)動作問題,由于按Backspace的默認(rèn)動作是刪除字符沼头,chrome在沒有通過document.createRange()設(shè)置range的情況下爷绘,按Backspace的刪除動作是,在本節(jié)點(diǎn)內(nèi)容全部刪除完畢后进倍,直接到上一節(jié)點(diǎn)的最前端土至,而這時,第二個刪除動作其實(shí)在新的節(jié)點(diǎn)上也發(fā)生了猾昆,只是由于光標(biāo)已經(jīng)在最前端陶因,所以刪無可刪,而當(dāng)通過代碼將光標(biāo)移動到最末端時垂蜗,這個按Backspace的刪除將被執(zhí)行坑赡,所以會刪除最后一個字符。
    • 解決辦法:在設(shè)置光標(biāo)移動到最后位置后么抗,設(shè)置e.preventDefault()取消默認(rèn)事件。
  2. 如何在一個使用contenteditable屬性的div標(biāo)簽中亚铁,定位光標(biāo)的位置
    • 光標(biāo)的說明: 在HTML里面蝇刀,光標(biāo)是一個對象,光標(biāo)對象是只有當(dāng)你選中某個元素的時候才會出現(xiàn)的徘溢。
      當(dāng)我們?nèi)c(diǎn)擊一個輸入框的時候吞琐,實(shí)際上它會產(chǎn)生一個選中對象-selection(就是我們可以看到的文字變成藍(lán)色的那個區(qū)域)捆探,selection在火狐瀏覽器可以直接用 window.getSelection()獲取,在HTML里面站粟,selection只有一個的黍图,并且selection是一個區(qū)域,你可以想象成一個長方形奴烙,它是有開始和結(jié)束的
      當(dāng)你點(diǎn)擊一個輸入框助被,或者你切換到別的輸入框,selection是會跟著變化的切诀。光標(biāo)就是在selection里面揩环,光標(biāo)叫做range,是一個片段區(qū)域幅虑,和selection一樣丰滑,有開始點(diǎn),和結(jié)束點(diǎn)倒庵,當(dāng)我們對文字按下左鍵向右拉的時候褒墨,就看到了文字變成藍(lán)色,那個就是光標(biāo)的開始和結(jié)束擎宝,當(dāng)我們直接點(diǎn)一下的時候郁妈,光標(biāo)在閃,其實(shí)只是開始和結(jié)束點(diǎn)重疊了认臊。(這段文字摘自https://segmentfault.com/a/1190000005869372
var getCaretPosition = function(oField) {
    var iCaretPos = 0;
    var doc = oField.ownerDocument || oField.document;
    var win = doc.defaultView || doc.parentWindow;
    var sel;
    if (typeof win.getSelection != "undefined") {
        sel = win.getSelection();
        if (sel.rangeCount > 0) {
            var range = win.getSelection().getRangeAt(0);
            var preCaretRange = range.cloneRange();
            preCaretRange.selectNodeContents(oField);
            preCaretRange.setEnd(range.endContainer, range.endOffset);
            iCaretPos = preCaretRange.toString().length;
        }
    } else if ((sel = doc.selection) && sel.type !== 'Control') {
        var textRange = sel.createRange();
        var preCaretTextRange = doc.body.createTextRange();
        preCaretTextRange.moveToElementText(oField);
        preCaretTextRange.setEndPoint('EndToEnd', textRange);
        iCaretPos = preCaretTextRange.text.length;
    }
    return (iCaretPos);
};
  1. 如何在一個使用contenteditable屬性的div標(biāo)簽中圃庭,移動光標(biāo)的位置
    • 實(shí)現(xiàn)步驟(僅針對chrome瀏覽器,其他沒測試)
      1. 創(chuàng)建一個一個Range對象
      2. 設(shè)置Range所針對的元素對象
      3. 設(shè)置Range前后位置可以重疊
      4. 設(shè)置Range開始(開始結(jié)束一樣)
      5. 設(shè)置Range結(jié)束(這個決定了光標(biāo)移動到的具體位置)
      6. 設(shè)置選區(qū)
      7. 清除選區(qū)中的所有范圍
      8. 將Range加入到選區(qū)中失晴。
    • 代碼示例
      2017-06-26_125347.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剧腻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涂屁,更是在濱河造成了極大的恐慌书在,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拆又,死亡現(xiàn)場離奇詭異儒旬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帖族,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門栈源,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人竖般,你說我怎么就攤上這事甚垦。” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵艰亮,是天一觀的道長闭翩。 經(jīng)常有香客問我,道長迄埃,這世上最難降的妖魔是什么疗韵? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮侄非,結(jié)果婚禮上蕉汪,老公的妹妹穿的比我還像新娘。我一直安慰自己彩库,他們只是感情好肤无,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骇钦,像睡著了一般宛渐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上眯搭,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天窥翩,我揣著相機(jī)與錄音,去河邊找鬼鳞仙。 笑死寇蚊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棍好。 我是一名探鬼主播仗岸,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼借笙!你這毒婦竟也來了扒怖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤业稼,失蹤者是張志新(化名)和其女友劉穎盗痒,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體低散,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俯邓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了熔号。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稽鞭。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖引镊,靈堂內(nèi)的尸體忽然破棺而出朦蕴,到底是詐尸還是另有隱情螟碎,我是刑警寧澤秫舌,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站百拓,受9級特大地震影響亮瓷,放射性物質(zhì)發(fā)生泄漏琴拧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一嘱支、第九天 我趴在偏房一處隱蔽的房頂上張望蚓胸。 院中可真熱鬧,春花似錦除师、人聲如沸沛膳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锹安。三九已至,卻和暖如春倚舀,著一層夾襖步出監(jiān)牢的瞬間叹哭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工痕貌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留风罩,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓舵稠,卻偏偏與公主長得像超升,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哺徊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容