2017-01-31 5 views
0

Chrome拡張子Web Override内の次のjavascriptを使用して、すべてのFacebookページの特定のテキストを置き換えようとしていますが、機能しません。Facebookの文字列を置き換えるChromeアドオンが機能していませんか?

document.addEventListener('DOMContentLoaded', function() { 
    document.body.innerHTML = document.body.innerHTML.replace('Friend Name', 'Silly Nickname'); 
}, false); 

setTimeout(function(){ 
document.body.innerHTML = document.body.innerHTML.replace('Friend Name', 'Silly Nickname'); 
}, 3000); 

私は手動でそれは私が何を期待し、ページの読み込み後にコンソールにreplace機能を実行する場合。それはなぜ自動的に動かないのですか? 私が得るコンソールエラーは次のとおりですが、jqueryをロードしてはいけないので、このプラグイン/コードには関係していないと思います。それはソースがVM1771:7あるので、残念ながら、私は確認することはできません

次コンテンツセキュリティポリシーの指示に違反しているため

は、スクリプトをロードするために「https://code.jquery.com/jquery-3.1.1.min.js」を拒否しました。

の場合は、何かできますか?そうでない場合は、コードの何が間違っていますか?

答えて

2

String.prototype.replaceは、最初の引数として文字列または正規表現のいずれかを使用し、文字列の場合は最初のオカレンスのみを置き換えます。その発生は、あなたがすべてのオカレンスを交換することにしたい場合は、正規表現のオプションを使用する必要があります

など、いくつかのメタデータにクラス名のようになります。

document.body.innerHTML = document.body.innerHTML.replace(/Friend Name/g, 'Silly Nickname'); 

ここgフラグは、「グローバル」、すなわちを意味し、これをすべての発生に適用します。大文字と小文字の区別がない場合は、giを使用することもできます。

+0

これはまさに問題でした。ありがとう! –

+0

問題ありません。このようにinnerHTMLを置き換えること(スクリプトが再実行されない、イベントリスナーが失われるなど)を置き換えることをお勧めします。おそらくこれは問題ではないかもしれませんが、いくつかの問題があるようです。 –

+0

ええ、間違いなくいくつかのものが壊れています。しかしそれはただのギャグなので、私はそれについて心配していません。再度、感謝します。 –