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

  • [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 ?


  • #2
    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.

    Kommentar


    • #3
      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";
      }

      Kommentar


      • #4
        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.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          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 ...?

          Kommentar


          • #6
            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.

            Kommentar


            • #7
              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.

              Kommentar


              • #8
                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

                Kommentar

                Lädt...
                X