ホームページ > ウェブフロントエンド > jsチュートリアル > textarea_javascript スキルで JavaScript を使用してカーソル位置を取得する

textarea_javascript スキルで JavaScript を使用してカーソル位置を取得する

WBOY
リリース: 2016-05-16 19:04:53
オリジナル
1199 人が閲覧しました

JavaScript や Web ページ エディタを作成する人にとって、テキストエリアでのカーソル位置の取得は非常に重要な問題であり、多くの人がこの分野で迷ってしまい、良い方法が見つからないことがよくあります。昨日、インターネット上で JavaScript コードを見つけました。とても興味深いもので、変更するのが怖かったので、ここにオリジナルのバージョンを載せておきます。

var start=0;
var end=0;
var textBox = document.getElementById("ta"); ;
var post = textBox.value.substr(end);
textBox.value = pre document.getElementById("inputtext").value post;
}
function savePos(textBox){ 🎜> //Firefox (1.5) の場合、方法は非常に簡単です
if(typeof(textBox.selectionStart) == "number"){
start = textBox.selectionStart
end = textBox; .selectionEnd; 🎜> var range = document.selection.createRange();
if(range.parentElement().id == textBox.id){
var range = document.selセクション.createRange() / / テキストエリア全体の選択範囲を作成します。
var range_all = document.body.createTextRange();
range_all.moveToElementText(textBox);
range_all .compareEndPoints() は、range_all が 2 つのエンドポイントよりも遠い場合に比較します。 range より左にある場合、 //0 未満の値を返します。その後、range_all は 2 つの範囲の始まりが同じになるまで少し右に移動します。
// range_allの先頭を範囲の先頭に移動することで選択の開始点を計算します
for (start=0; range_all.compareEndPoints("StartToStart", range) range_all.moveStart('キャラクター」、1);
// テキストエリアの開始から選択範囲の開始までの改行数を取得し、開始に追加します
//计算一下
for (var i = 0; i if (textBox.value.charAt(i) == 'n')
開始;

// テキストエリア全体の選択範囲を作成
var range_all = document.body.createTextRange();
range_all.moveToElementText(textBox);
// range_all の先頭を範囲の末尾に移動することで選択の終了点を計算します
for (end = 0; range_all.compareEndPoints('StartToEnd', range) range_all.moveStart('キャラクター」、1);
//テキストエリアの開始から選択範囲の終了までの改行数を取得し、終了に追加します
for (var i = 0; i 終わり ;
}
}
}
document.getElementById("start").value = start;
document.getElementById("end").value = end;
}
ページ内で JS コードを呼び出す方法は次のとおりです:



    
        
        
    
    
        
    
    
        
        
    
start:  end: 

            
        

開始: 終了:



このコードの元のテキストは次のとおりです: http://blog.csdn.net/liujin4049/archive/2006/09/19/1244065.aspx、ありがとうあなた! この js コードは IE と Firefox の両方をサポートしています。これは、この人が深い js スキルを持っていることを示しています (笑)。 ところで: Firefox の現在の市場シェアは 17% に達しており、IE8 が間もなく登場すると聞きましたが、ブラウザ間でまた生死を賭けた戦いが起こるでしょう。そして、この種の戦いはブラウザを解析しにくくする可能性があります。標準がますます標準化され、コードを書くのがますます簡単になることは本当に喜ばしいことです。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート