Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Greasmonkey / Eigenes Script / Aussehen verändern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • noop
    hat ein Thema erstellt [Erledigt] Greasmonkey / Eigenes Script / Aussehen verändern.

    [Erledigt] Greasmonkey / Eigenes Script / Aussehen verändern

    Hi,

    Greasmonkey werden sicherlich einige kennen. Es handelt sich hier um ein Plugin für den FF. Hier kann man eingene Scripte in JavaScript erstellen.

    Das klappt auch schon ganz gut. CSS + gewisse Tabellenformen kann ich schon ansprechen bzw. entfernen/ändern.

    Nur leider finde ich keine Funktion, wo ich ein Bild gegen ein anderes austauschen kann.

    Beispiele:

    Wenn ich eine CSS Änderung machen will:
    Code:
    htmlElement.style.CSSEigenschaft = "NeuerWert";
    Wenn ich z.B. bei map24 in der Druckvorschau die Werbung wegschneiden will:
    Code:
    var adSidebar = document.getElementById('<td valign="top" align="right">');
    if (adSidebar) {
        adSidebar.parentNode.removeChild(adSidebar);
    }
    Nur wie ich ein Element gegen ein anderes austauschen kann, finde ich nicht.

    Table of contents [Dive Into Greasemonkey] <= hier sind etliche Beispiele... aber nicht das was ich suche... oder ich suche falsch.

    Hier gibt es ein Code, was aber auf ID bassiert. Die HP, die ich ändern will, verwendet für das Bild aber weder ID noch CLASS.
    Code:
    var theImage, altText;
    theImage = document.getElementById('annoyingsmily');
    if (theImage) {
        altText = document.createTextNode(theImage.alt);
        theImage.parentNode.replaceChild(altText, theImage);
    }
    Quelle: 4.10.Replacing an element with new content [Dive Into Greasemonkey]



    Dieses Element will ich ansprechen und gegen ein anderen Bildnamen ändern.
    Code:
    <img width="32" height="32" border="0" src="/icons/32x32/add.gif">
    Weiß einer Rat ?

  • Gast-Avatar
    Ein Gast antwortete
    Zitat von ChrisB Beitrag anzeigen
    Was hast du denn konkret zwecks Debugging unternommen? Beschreibe das bitte mal!
    Ich habe mir per alert Fenster alle gefunden <img> ausgeben lassen.

    alert(elem.src);


    Zitat von ChrisB Beitrag anzeigen
    Lautet die Bildadresse so ...?
    Das war der ausschlagende Tipp.
    Ich habe nur den Bildernamen ersetzen wollen.
    Nachdem ich aber die komplette http:// Adresse eingegeben habe, hat es nun endlich geklappt.

    Danke

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Zitat von noop Beitrag anzeigen
    Mag sein, das das korrekt ist. Ändert aber nichts daran, das in der Druckvorschau von Map24 die Spalte mit der Werbung entfernt wird.
    Nur ist das vermutlich(!) nicht dein Verdienst bzw. der deines fehlerhaften Scriptes - s.o.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von nikosch Beitrag anzeigen
    Das ist Unsinn. Eine ID ist eine ID, kein DOM-Value.
    Mag sein, das das korrekt ist. Ändert aber nichts daran, das in der Druckvorschau von Map24 die Spalte mit der Werbung entfernt wird.

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Zitat von noop Beitrag anzeigen
    Du vermutest falsch... klappt einwandfrei. kann direkt drucken ohne einen fetten Werbebanner mit im Druckbild zu haben.
    Kann ich auf map24 auch - auch wenn ich mein AdBlock deaktiviere, und ohne irgendwelches zusätzliche JavaScript.

    Ich vermute, dass die die Werbung im Druck-Stylesheet einfach ausblenden, weil sie selber wissen, dass Werbung, die geklickt werden will, auf Papier nicht allzu viel Sinn ergibt ...

    Leider greift folgendes Script nicht. Debugging auf fremde Seiten is da ein bissel schwierig
    Das dürfte auch nicht schwieriger sein, als auf eigenen Seiten auch.

    Was hast du denn konkret zwecks Debugging unternommen? Beschreibe das bitte mal!

    Code:
      var elem = images[i];
      if (elem.src == "add.gif")
    Lautet die Bildadresse so ...?

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Du vermutest falsch... klappt einwandfrei. kann direkt drucken ohne einen fetten Werbebanner mit im Druckbild zu haben.
    Das ist Unsinn. Eine ID ist eine ID, kein DOM-Value.

    DOM ist auch schon das Stichwort - Greasemonkey arbeitet komplett auf Javascript. Also ist alles, was Du brauchst auch dort zu suchen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von ChrisB Beitrag anzeigen
    Ich glaube kaum, dass die Methode mit dieser - reichlich ungültig aussehenden - ID irgendwas anfangen kann ...
    Du vermutest falsch... klappt einwandfrei. kann direkt drucken ohne einen fetten Werbebanner mit im Druckbild zu haben.


    Soweit bin ich jetzt schon mal:
    Es wird alles rausgesucht, wo img vorkommt.

    Dann soll nach ein Bildnamen gesucht werden und mit ein anderes Bild ersetzt werden.

    Leider greift folgendes Script nicht. Debugging auf fremde Seiten is da ein bissel schwierig

    Code:
    var images = document.getElementsByTagName("img");
    
    for (var i = 0; i < images.length; i++) {
      var elem = images[i];
      if (elem.src == "add.gif")
        elem.src = "error.gif";
    }

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Zitat von noop Beitrag anzeigen
    Wenn ich z.B. bei map24 in der Druckvorschau die Werbung wegschneiden will:
    Code:
    var adSidebar = document.getElementById('<td valign="top" align="right">');
    Ich glaube kaum, dass die Methode mit dieser - reichlich ungültig aussehenden - ID irgendwas anfangen kann ...

    Nur wie ich ein Element gegen ein anderes austauschen kann, finde ich nicht.
    Wieder mal - am Problem vorbei formuliert

    Die HP, die ich ändern will, verwendet für das Bild aber weder ID noch CLASS.
    Dann such dir einen anderen Weg, Zugriff auf das Element zu bekommen.

    Das kann bspw. über seine „Nachbarschaft“ geschehen - in welchem Element befindet es sich, von welchem Element ist es ein Geschwisterknoten und der wievielte, etc.

    Was du dazu brauchst, ist ein bisschen Wissen über den Umgang mit dem DOM.

    Einen Kommentar schreiben:

Lädt...
X