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

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

如何從一開始就獲得文本區(qū)域中插入符號(hào)列(而不是像素)的位置(以字符為單位)?

如何從一開始就獲得文本區(qū)域中插入符號(hào)列(而不是像素)的位置(以字符為單位)?

PIPIONE 2019-06-01 14:02:57
如何從一開始就獲得文本區(qū)域中插入符號(hào)列(而不是像素)的位置(以字符為單位)?控件中的插入符號(hào)位置是如何得到的。<textarea>使用JavaScript?例如:This is| a text這應(yīng)該會(huì)回來7.如何讓它返回圍繞游標(biāo)/選擇的字符串?例如:'This is', '', ' a text'.如果突出顯示“is”一詞,那么它將返回。'This ', 'is', ' a text'.
查看完整描述

3 回答

?
忽然笑

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

對(duì)于Firefox、Safari(和其他基于壁虎的瀏覽器),您可以很容易地使用textarea.selectionStart,但是對(duì)于IE,這是行不通的,所以您必須這樣做:

function getCaret(node) {
  if (node.selectionStart) {
    return node.selectionStart;
  } else if (!document.selection) {
    return 0;
  }

  var c = "\001",
      sel = document.selection.createRange(),
      dul = sel.duplicate(),
      len = 0;

  dul.moveToElementText(node);
  sel.text = c;
  len = dul.text.indexOf(c);
  sel.moveStart('character',-1);
  sel.text = "";
  return len;}

(這里完整的代碼)

我還建議您檢查jQuery。字段選擇插件,它允許你這樣做,還有更多.

編輯:實(shí)際上,我重新實(shí)現(xiàn)了上述代碼:

function getCaret(el) { 
  if (el.selectionStart) { 
    return el.selectionStart; 
  } else if (document.selection) { 
    el.focus(); 

    var r = document.selection.createRange(); 
    if (r == null) { 
      return 0; 
    } 

    var re = el.createTextRange(), 
        rc = re.duplicate(); 
    re.moveToBookmark(r.getBookmark()); 
    rc.setEndPoint('EndToStart', re); 

    return rc.text.length; 
  }  
  return 0; }

檢查一個(gè)例子這里.


查看完整回答
反對(duì) 回復(fù) 2019-06-01
?
瀟瀟雨雨

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

我修改了上面的函數(shù),以考慮IE中的回車情況。它沒有經(jīng)過測(cè)試,但是我在代碼中做了一些類似的事情,所以它應(yīng)該是可行的。

function getCaret(el) {
  if (el.selectionStart) { 
    return el.selectionStart; 
  } else if (document.selection) { 
    el.focus(); 

    var r = document.selection.createRange(); 
    if (r == null) { 
      return 0; 
    } 

    var re = el.createTextRange(), 
    rc = re.duplicate(); 
    re.moveToBookmark(r.getBookmark()); 
    rc.setEndPoint('EndToStart', re); 

    var add_newlines = 0;
    for (var i=0; i<rc.text.length; i++) {
      if (rc.text.substr(i, 2) == '\r\n') {
        add_newlines += 2;
        i++;
      }
    }

    //return rc.text.length + add_newlines;

    //We need to substract the no. of lines
    return rc.text.length - add_newlines; 
  }  
  return 0; }


查看完整回答
反對(duì) 回復(fù) 2019-06-01
  • 3 回答
  • 0 關(guān)注
  • 391 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)