[解決済み】日本語のテキストをダブルクリックしたとき、Chromeはどのようにハイライトを決定するのですか?
2022-04-20 12:26:39
質問
Chromeで英語のテキストをダブルクリックすると、クリックした空白で区切られた単語がハイライトされます。これは驚くことではありません。しかし、先日、日本語のテキストを読みながらクリックしたところ、日本語には空白がないのに、単語の境界でハイライトされている単語があることに気づきました。以下は、その例である。
<ブロッククオートどこで生れたか見当がつくぬ。
例えば、薄暗いをクリックすると、Chromeは一文字クラスでないにもかかわらず、正しく一単語としてハイライトします(これは漢字とひらがなの混在です)。すべてのハイライトが正しいわけではありませんが、ランダムに表示されるわけでもないようです。
Chromeはここで何をハイライトするかをどのように決定しているのでしょうか?Chrome のソースで "日本語" を検索してみましたが、以下のようなテストしか見つかりませんでした。 実験モジュール 私のバージョンのChromeでは有効でないようです。
解決方法は?
そこで、v8には非標準の多言語単語分割機能があり、日本語を扱っていることが判明しました。
function tokenizeJA(text) {
var it = Intl.v8BreakIterator(['ja-JP'], {type:'word'})
it.adoptText(text)
var words = []
var cur = 0, prev = 0
while (cur < text.length) {
prev = cur
cur = it.next()
words.push(text.substring(prev, cur))
}
return words
}
console.log(tokenizeJA('どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。'))
// ["どこ", "で", "生れ", "たか", "とんと", "見当", "が", "つ", "か", "ぬ", "。", "何でも", "薄暗い", "じめじめ", "した", "所", "で", "ニャーニャー", "泣", "い", "て", "いた事", "だけ", "は", "記憶", "し", "て", "いる", "。"]
も作ってみました。 jsfiddle を表示させることができます。
品質は驚くほどではありませんが、これが全くサポートされていないのは驚きです。
関連
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】Chromeデベロッパーツールの==$0(ダブルイコール ドルゼロ)の意味とは?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Chrome Developer Toolsでstatus=canceled for a resourceとはどういう意味ですか?
-
[解決済み] Google ChromeでJavaScriptデバッガーを起動する方法を教えてください。
-
[解決済み] ダブルクリック後にテキストが選択されないようにする
-
[解決済み】Chrome DevTools Devicesに接続してもデバイスが検出されない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み】JavaScriptのinnerHTMLで要素が更新されない
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】Uncaught SyntaxError: JSON の位置 0 に予期しないトークン u があります。
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】Vueが定義されていない