-1

私はjavascriptにかなり慣れていないので、運が悪かったので、これに取り組んで長い時間を費やしてきました。私はグーグルクローム拡張機能を作成していて、ユーザー定義されたページ上の特定の単語をブロックしたいのですが、ウェブページが私の希望するIDを持たないため、getelementbyidなしでこれを実行したいと思います。たとえば、ユーザーにブロックしたい単語を入力してもらうと、アクセスしたすべてのWebページでそれらの単語が置き換えられます。HElPは大いに活用されました。これまでのところ、タグではなくIDで要素を取得するだけです。

4

3 に答える 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 に答える