私は、画面上で矩形を作成し、座標(上、左、幅、高さ)を与える領域選択ツールを作った。基本的には、その矩形の中にすべての(そして唯一の)目に見えるテキストを入れたいと思います。また、正確なテキストでなければなりません。繰り返しはありません。外接矩形内のすべてのテキストを取得
これは私が地域を作る方法です。
私はこのような何かしようとしている:
var top = parseInt($('#selectionn33').css('top'))
var left = parseInt($('#selectionn33').css('left'))
var width = parseInt($('#selectionn33').css('width'))
var height = parseInt($('#selectionn33').css('height'))
var items = document.getElementsByTagName("*");
for (var i = items.length; i--;)
{
var rect = items[i].getBoundingClientRect();
if(rect.top >= top && rect.top <= (top + height))
{
if(rect.left >= left && rect.left <= (left + width))
{
console.log(items[i].textContent);
}
}
}
をしかし、それは私が望んでいない大量のテキストを取得し、同様に条件を満たすが矩形の外側にある要素からのテキスト。
どうすればいいですか?
既知のサイズの固定幅フォントを使用する場合、長方形内に収まらないテキストから文字を切り抜けることができるかどうかを確認する必要がありますすべてのテキストを取得した後? – adam0101
これを行う簡単な方法は間違いありません。私の最善の提案は 'Range.getBoundingClientRect()'を使用して、範囲の開始と終了を繰り返し設定し、テストします。これは非常に速く醜いと遅くなるだろうが、可能でなければならない。 – nrabinowitz
要素はどのように基準を満たしていますが、長方形の外側にありますか?選択枠に基づいてテキストの各行をトリミングしますか?または選択肢に完全に収まる要素のみ?複数の要素からテキストを収集した後、どのようにテキストを整理したいのですか?画像をアップロードして、予想される動作を詳しく説明できますか? –