2016-12-22 12 views
0

チュートリアルhereからChrome拡張機能のプログラミングを学習しています。Chrome拡張機能のJavaScriptプログラムが動作しない

クロムエクステンションhereの完全なコードを見つけることができます。

私はいくつかのリンクを削除しようとしたコードスニペット:

var clean_twitter = function(){ 
    var ugly = []; 
    ugly.push('.Trends module trends'); 
    ugly.push('.flex-module'); 
    ugly.push('.MomentMakerHomeModule-header'); 
    ugly.push('.Footer module roaming-module'); 
    ugly.push('.flex-module-header'); 

    $('.promoted-tweet').hide(); // oops! :P 

    for(var i=0;i<ugly.length;i++) { 
    var u = $(ugly[i]).find('a'); // also 'b' 
    u.text(''); 
    } 
} 

コードは、TwitterのWebサイトからいくつかのボタンとdiv要素を削除しようとします。

今、私はそれを自分のPCに置いても何も起こりません。トレンドボックス内の変更リンクを削除しようとしましたが、削除されません。

私がここで間違っていると助けてください。ありがとう。

+0

トピックになる質問を編集してください:**完全な** [mcve]を含めると*問題が複製されます*。 * manifest.json *、背景/コンテンツ/ポップアップスクリプト/ HTMLの一部を含みます。デバッグの助けを求める質問(「**なぜこのコードは動作しないのですか?**」)には、以下が含まれていなければなりません:►必要な動作、►特定の問題またはエラー*、および►問題を再現するのに必要な最短コード自体**。明確な問題文がない質問は、他の読者にとって有用ではありません。参照してください: "**どのように[mcve] **を作成するか"、[ここで私はどんな話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask] – Makyen

答えて

1

process_new_tweets関数の冒頭には、DOM内の.mini-profileの有無がどのようにフラグとして使用されるかを説明するコメントがあります。要約すると、DOM内に要素が存在しないということは、関数が戻ってそれ以上進行しないことを意味する。チュートリアルが書かれて以来、TwitterにはDOMのどこにでも.mini-profile要素がないように見えるので、関数は常に戻り、スクリプトの実行はこれ以上進まない。

process_new_tweets関数の先頭から次の行削除します。

var mp = document.getElementsByClassName('mini-profile'); 
if(mp.length === 0) { return; } 

をそして予想通り、あなたのclean_twitter機能で選択した要素がDOMから削除されます。

関連する問題