私はjavascriptにかなり慣れていないので、運が悪かったので、これに取り組んで長い時間を費やしてきました。私はグーグルクローム拡張機能を作成していて、ユーザー定義されたページ上の特定の単語をブロックしたいのですが、ウェブページが私の希望するIDを持たないため、getelementbyidなしでこれを実行したいと思います。たとえば、ユーザーにブロックしたい単語を入力してもらうと、アクセスしたすべてのWebページでそれらの単語が置き換えられます。HElPは大いに活用されました。これまでのところ、タグではなくIDで要素を取得するだけです。
3 に答える
1
テキストはどの要素にも含めることができるため、getElementsByTagName
あまり使用されません。
代わりに、すべてのノードを反復処理することを検討してください。タイプ3のノード(テキストノード)を探し、それらのコンテンツを置き換えます。
で開始しdocument.body
、を取得して.children[]
、再帰的にループします。
于 2013-01-06T07:15:49.863 に答える
0
これが実際の例です:http://jsfiddle.net/cmontgomery/V45LS/
秘密のソース:
soapInTheMouth = function(node) {
var allNodes = node.childNodes;
$.each(allNodes, function(i,n) {
if(n.nodeType === 3) {
n.nodeValue = n.textContent.replace(/shit/g,'crap');
} else {
soapInTheMouth(n);
}
});
}
于 2013-01-06T08:19:14.583 に答える
0
ありがとうございますが、私はそれが私に代わって単に構文エラーであったことを修正しました
于 2013-08-20T07:43:41.713 に答える