私はテキストに応じてウェブページを変更する小さなwebextensionを作成しています。それは示されていない場合でも、テキストノードのレンダリングされたテキストのみを取得する方法は?
var treeWalker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_TEXT,
{ acceptNode:() => {return NodeFilter.FILTER_ACCEPT;} },
false
);
while(treeWalker.nextNode()) {
let x = treeWalker.currentNode.data;
//do something with x
}
は残念ながら、xはノード内のすべてのテキストを持っています。ここに私の問題の例として、歩行者がページ上のすべてのテキストノードをつかむツリーを持っているいくつかのコードですウェブページ上で
私が望むのは、treeWalker.currentNode.innerTextのようなものですが、テキストノードでは未定義です。テキストノードのユーザに表示されるテキストのみを取得する方法を知っている人はいますか?
例:関連するCSSと
<div>
<script type="text/x-config">
{
"setObject": -1
}
</script>
<span>Quiz</span>
:Webページには、以下のHTMLを持つノードを持っている場合
script {
display: none;
}
そして、それぞれのテキストノード(マイナス余分なスペースや行のテキストコンテンツブレーク)は "{" setObject ":-1}クイズ"として返されます。ただし、ユーザーに表示されるのは「クイズ」だけです。それぞれのテキストノードが与えられた場合、レンダリングされたテキストのみを取得するにはどうすればよいですか?
何がユーザーに表示されていないテキストノードの内容の一例ですか? – nnnnnn
CSSによってデータが隠されているという意味で「可視」のテキストを取得しようとしていますか? ( 'text-overflow'ルールのように)? – bonesbrigade
説明を明確にするために例を追加しました。 – AndersonHappens