2016-12-22 1 views
0

Ich lerne Chrome-Erweiterung Programmierung aus dem Tutorial here.Chrome-Erweiterung JavaScript-Programm funktioniert nicht

Sie können den vollständigen Code für die Chrome-Erweiterung here finden.

Der Code-Schnipsel, wo ich einige Links zu entfernen versucht:

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(''); 
    } 
} 

Der Code versucht, ein paar Knöpfe und div von der Twitter-Website zu entfernen.

Jetzt, als ich es auf meinem PC legte passiert nichts. Ich habe versucht, den Änderungslink in der Trendbox zu entfernen und er wird nicht entfernt.

Bitte helfen Sie, wenn ich hier etwas falsch mache. Vielen Dank.

+0

Bitte bearbeiten Sie die Frage zum Thema: Fügen Sie ein ** complete ** [mcve] ein, das * das Problem dupliziert *. Einschließlich * manifest.json *, einige der Hintergrund/Inhalt/Popup-Skripte/HTML. Fragen, die Debugging-Hilfe suchen ("** warum funktioniert dieser Code nicht? **") müssen Folgendes enthalten: ► das gewünschte Verhalten, ► ein bestimmtes Problem oder einen Fehler * und * ►den kürzesten Code, der für die Wiedergabe in der Frage erforderlich ist selbst**. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: "** Wie erstelle ich ein [mcve] **", [Was kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) und [ask]. – Makyen

Antwort

1

Zu Beginn der process_new_tweets Funktion gibt es einen Kommentar, der erklärt, wie die Anwesenheit oder Abwesenheit von .mini-profile im DOM als Flag verwendet wird.

Zusammenfassend bedeutet die Abwesenheit des Elements .mini-profile im DOM, dass die Funktion zurückkehrt und nicht weiter fortfahren wird. Seit das Tutorial geschrieben wurde, scheint es, dass Twitter kein Element mehr in seinem DOM hat, so dass die Funktion immer zurückkehrt und die Skriptausführung nicht weiter fortschreitet.

Entfernen Sie die folgenden Zeilen von Anfang an der process_new_tweets Funktion:

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

und die Elemente, die Sie in Ihrer clean_twitter Funktion ausgewählt haben, werden aus dem DOM entfernt werden, wie erwartet.

Verwandte Themen