Linuchs: SVG-Grafik Farbe ändern

problematische Seite

Moin,

irgendwo gab es eine Info, dass SVG mit CSS beeinflusst werden kann.

Ich möchte ein icon weiß färben für einen dunklen Hintergrund

<g transform="translate(0.000000,1021.000000) scale(0.100000,-0.100000)"
fill="#ff5722" stroke="none">

#ff5722 ist die Farbe, aber die Änderung funktioniert so nicht:

<img class="ic c_weiss" src="img/icon_audio.svg" style="fill:#fff" />
<img class="ic c_weiss" src="img/icon_audio.svg" style="color:#fff" />

wie geht's?

fragt Linuchs

akzeptierte Antworten

  1. problematische Seite

    Hallo Linuchs,

    du kannst SVG mit einem Stylesheet beeinflussen, das im gleichen Dokument liegt. Das ist

    • ein svg-Element, das in HTML eingebettet ist
    • ein Stylesheet, das sich im SVG-Dokument befindet

    Ein externes SVG ist dagegen ein eigenes Dokument, in das kannst Du - meine ich - nicht hineinstylen.

    Schon gar nicht mit einem style-Attribut auf dem img Element, damit würdest Du diese Eigenschaften auf dem img Element setzen und nicht auf dem g Element des SVG Bildes dahinter.

    Bei einem eingebetteten SVG ging es über das Stylesheet des HTML Dokumentes

    <style>
    #bildlein rect {
       fill: pink;
    }
    </style>
    <h1>Mahlen nach Zalen</h1>
    <svg id="bildlein" viewBox="0 0 100 100">
       <g>
          <rect x="10" y="10" width="50" height="20" />
       </g>
    </svg>
    

    Aber für ein externes SVG greift das nicht.

    Man könnte MÖGLICHERWEISE über URL Parameter gehen und diese mit Script im SVG auslesen, aber das ist ziemlich von hinten durch die Brust ins Auge und ich weiß auch nicht, ob die Browser Script in SVG Files bereitwillig ausführen.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. problematische Seite

      Hallo Rolf,

      das habe ich jetzt mal ausprobiert. Hier ein Spiel-SVG:

      <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 960 72" width="960" height="72">
      <style>
        #reck {
          fill: red;
          stroke-width: 4;
          stroke: blue;
        }
        .curc {
          fill: blue;
          stroke-width: 4;
          stroke: red;
        }
      </style>
      
      <rect id="reck" x="100" y="30" width="200" height="30"></rect>
      <circle class="curc" cx="600" cy="45" r="20"></circle>
      
      <script>
         for (let e of new URLSearchParams(location.search)) {
            let key = e[0].split('/');
            if (key.length == 2) {
               for (let elem of document.querySelectorAll(key[0]))
                  elem.style.setProperty(key[1], e[1]);
            }
         }
      </script>
      </svg>
      

      Das kann ich z.B. einbinden mit

      <embed type="image/svg+xml"
             src="test.svg?.curc/stroke=black&%23reck/fill=pink">
      

      und schon kriegt der Kreis einen schwarzen Rand und das Rechteck eine rosa Füllung. Es muss aber embed sein. SVGs, die als img eingebunden sind, führen keine Scripte aus.

      Die Keys der URL-Parameter bestehen aus 2 Teilen: Ein Selektor und ein CSS Eigenschaftsname, getrennt durch einen Schrägstrich. Der Wert zum Key wird dann den Elementen, die durch den Selektor identifiziert werden, zugewiesen.

      Selektoren mit Zeichen darin, die in URLs nicht zulässig sind, müssen natürlich prozentcodiert werden. Aber dafür gibt's ja Funktionen, wie encodeURIComponent in JavaScript.

      Das ist nicht SCHÖN. Okay. Aber man kann damit in SVGs hineinstylen...

      Rolf

      --
      sumpsi - posui - obstruxi
      1. problematische Seite

        Hallo Rolf,

        Das ist nicht SCHÖN. Okay. Aber man kann damit in SVGs hineinstylen...

        Wenn man ein Script ins SVG einfügen soll, also eh am SVG schraubt, wäre doch auch ein externes Stylesheet platzierbar.

        Grüße,
        Thomas

        1. problematische Seite

          Nachtrag: Via <object> kann man auch aus dem einbindenden HTML-Dokument ins SVG eingreifen.

          test.html

          <!DOCTYPE html>
          <html lang="de">
            <head>
              <meta charset="UTF-8" />
              <title>Test</title>
              <script>
                document.addEventListener("DOMContentLoaded", function()
                {
                  const obj = document.querySelector("object");
          
                  obj.addEventListener("load", function()
                  {
                    obj.contentDocument.querySelector("circle").setAttribute("fill","red");
                  });
                });
              </script>
            </head>
            <body>
              <object data="test.svg" type="image/svg+xml"></object>
            </body>
          </html>
          
          

          test.svg

          <?xml version="1.0" encoding="UTF-8"?>
          <svg xmlns="http://www.w3.org/2000/svg">
            <circle cx="50" cy="50" r="20"/>
          </svg>
          

          Grüße,
          Thomas

        2. problematische Seite

          Hallo ThomasM,

          kommt halt drauf an, ob man in einem SVG Dinge rumpatchen will. Ein ext. Stylesheet kann ich ja auch nicht pro SVG-Einbindung auswechseln. Oder kann man, und ich weiß nur nicht wie es geht?

          Rolf

          --
          sumpsi - posui - obstruxi
          1. problematische Seite

            Hallo Rolf,

            kommt halt drauf an, ob man in einem SVG Dinge rumpatchen will. Ein ext. Stylesheet kann ich ja auch nicht pro SVG-Einbindung auswechseln. Oder kann man, und ich weiß nur nicht wie es geht?

            Über die genannte object-Einbindung lassen sich auch externe Stylesheets austauschen.

            Dieses SVG-Dokument sei über object eingebunden:

            <?xml version="1.0" encoding="UTF-8"?>
            <?xml-stylesheet href="test1.css" type="text/css"?>
            <svg xmlns="http://www.w3.org/2000/svg">
              <circle cx="50" cy="50" r="20"/>
            </svg>
            
            

            Die Processing Instruction (PI) <? ... ?> ist der vorherige Knoten vom Wurzelelement.

            obj.contentDocument.documentElement.previousSibling.nodeValue = 'href="test2.css" type="text/css"';
            

            lädt das alternative Stylesheet in den PI-Kontext. Beide Stylesheets einfach mal mit unterschiedlichen circle { fill: ...; } versehen.

            Grüße,
            Thomas

    2. problematische Seite

      Moin,

      du kannst SVG mit einem Stylesheet beeinflussen, das im gleichen Dokument liegt. Das ist

      • ein svg-Element, das in HTML eingebettet ist
      • ein Stylesheet, das sich im SVG-Dokument befindet

      Ein externes SVG ist dagegen ein eigenes Dokument, in das kannst Du - meine ich - nicht hineinstylen.

      Das nicht, aber man das SVG im aktuellen Dokument nutzen und stylen …

      Bei einem eingebetteten SVG ging es über das Stylesheet des HTML Dokumentes

      <style>
      #bildlein rect {
         fill: pink;
      }
      </style>
      <h1>Mahlen nach Zalen</h1>
      <svg id="bildlein" viewBox="0 0 100 100">
         <g>
            <rect x="10" y="10" width="50" height="20" />
         </g>
      </svg>
      

      Aber für ein externes SVG greift das nicht.

      Doch:

      <style>
      rect {
      	stroke-width: 2px;
      	stroke: silver;
      }
      #rot {
      	fill: #b00;
      }
      #gruen {
      	fill: #115909;
      }
      #blau {
      	fill: #233652;
      }
      </style>
      
      <svg width="300" height="100">
      	<use href="html-css-use.svg#box" id="rot" x="10" y="10"/>
      	<use href="html-css-use.svg#box" id="gruen" x="110" y="10"/>
      	<use href="html-css-use.svg#box" id="blau" x="210" y="10"/>
      </svg>
      

      Man könnte MÖGLICHERWEISE über URL Parameter gehen und diese mit Script im SVG auslesen, aber das ist ziemlich von hinten durch die Brust ins Auge und ich weiß auch nicht, ob die Browser Script in SVG Files bereitwillig ausführen.

      Das ist auch viel zu kompliziert bzw. over-engineering.

      Viele Grüße
      Robert

  2. problematische Seite

    Hallo,

    irgendwo gab es eine Info, dass SVG mit CSS beeinflusst werden kann.

    ja, aber nur, wenn es im DOM abgebildet ist. Ein img-Element ist aber eine vom Rest isolierte Ressource.

    <g transform="translate(0.000000,1021.000000) scale(0.100000,-0.100000)"
    fill="#ff5722" stroke="none">
    

    #ff5722 ist die Farbe, aber die Änderung funktioniert so nicht:

    <img class="ic c_weiss" src="img/icon_audio.svg" style="fill:#fff" />
    <img class="ic c_weiss" src="img/icon_audio.svg" style="color:#fff" />
    

    Setze den SVG-Code als svg-Element direkt ins Dokument.

    Einen schönen Tag noch
     Martin

    --
    Wie man sich bettet, so schallt es heraus.
  3. problematische Seite

    Moin,

    irgendwo gab es eine Info, dass SVG mit CSS beeinflusst werden kann.

    zumindest in einem SVG ist das möglich (auch wenn das Wiki das nur verklausuliert nennt).

    Ich möchte ein icon weiß färben für einen dunklen Hintergrund

    <g transform="translate(0.000000,1021.000000) scale(0.100000,-0.100000)"
    fill="#ff5722" stroke="none">
    

    #ff5722 ist die Farbe, aber die Änderung funktioniert so nicht:

    <img class="ic c_weiss" src="img/icon_audio.svg" style="fill:#fff" />
    <img class="ic c_weiss" src="img/icon_audio.svg" style="color:#fff" />
    

    fill ist auch CSS-Attribut für HTML, sondern für SVG.

    Du könntest probieren, ob svg mit use deinem Zweck dient, d.h.

    <body><svg>
        <use href="/pfad/zur/datei.svg#objekt" style=""/>
    </svg></body>
    

    Viele Grüße
    Robert

    1. problematische Seite

      Hallo Robert,

      kann man in SVG Elemente, die mit use hereingeholt wurden, hineinstylen? Das hatte ich neulich mal, ging auch nicht. Oder ich war zu blöd dafür...

      Rolf

      --
      sumpsi - posui - obstruxi
      1. problematische Seite

        Moin Rolf,

        kann man in SVG Elemente, die mit use hereingeholt wurden, hineinstylen? Das hatte ich neulich mal, ging auch nicht. Oder ich war zu blöd dafür...

        es funktioniert.

        Viele Grüße
        Robert

        1. problematische Seite

          Hallo Robert und Rolf

          kann man in SVG Elemente, die mit use hereingeholt wurden, hineinstylen? Das hatte ich neulich mal, ging auch nicht. Oder ich war zu blöd dafür...

          es funktioniert.

          Der Wiki-Artikel erklärt es imho zutreffend:

          1. use-Elemente können mit CSS gestylt werden. So kann man einfarbige Rechtecke - wie in Roberts Beispiel - mit Füllung und Kontur versehen.
          2. Mögliche Kindelemente innerhalb des symbol-Elements im Definitionsabschnitt (z.B. bei mehrfarbigen Icons) sind im Shadow DOM gekapselt und können nicht mit Selektoren angesprochen werden.
            • Ein Umweg ist es Eigenschaften mit custom properties zu belegen und deren Werte dann entsprechend zu setzen.

          Dieses Beispiel (SVG/Tutorials/Gruppierungen#Styling_mit_custom_properties)arbeitet so:

          <defs>
          	<symbol id="wheel" x="-10" y="-10" height="20" width="20" viewBox="-10 -10 20 20">
          		<desc>Autoreifen mit Ventil, damit eine Rotation später sichtbar wird</desc>
          		<circle
          		style="fill: var(--accentcolor2);" cx="0" cy="0" r="8" />
          		<path id="valve" d="m0,-6 v2" /> </symbol>
          	<g id="auto">
          		<path id="body" style="fill: var(--bodycolor);" d="M 0,30 v-15 h15 l15,-15 h30 l15,15 h15 v15z"
          		/>
          		<path id="windows" style="fill: var(--accentcolor1); stroke-width:0;" d="M 19,15 h24 v-13 h-11 z m 27,0 h24 l-13,-13 h-11z"
          		/>
          		<use href="#wheel" x="20" y="30" height="20" width="20" />
          		<use href="#wheel" x="70" y="30" height="20" width="20" /> </g>
          </defs>
          
          <use href="#auto" x="50" y="50" style="--bodycolor: #c32e04; --accentcolor1: #fff; --accentcolor2: white"
          	;/>
          

          Angesichts der Versuche von Linuchs ein HTML-img mit fill zu färben (Dafür gibt's doch mix-blend-mode - duckundwech), nachdem er letzte Woche ein 7m langes Bild auf mein iPhone schicken wollte, kann ich eure Motivation im Beantworten von Fragen nur bewundern.

          Herzliche Grüße

          Matthias Scharwies

          --
          Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
          1. problematische Seite

            Hallo Matthias,

            jau, die Themen von Linuchs sind immer eine Herausforderung…

            Rolf

            --
            sumpsi - posui - obstruxi
            1. problematische Seite

              @@Rolf B

              jau, die Themen von Linuchs sind immer eine Herausforderung…

              Wie verbiege ich Web-Technologien entgegen allen Webstandards, ohne dass ich in Probleme renne, die dann andere für mich lösen müssen?

              🖖 Живіть довго і процвітайте

              --
              „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
              — @Grantscheam auf Twitter
              1. problematische Seite

                Hallo,

                jau, die Themen von Linuchs sind immer eine Herausforderung…

                Wie verbiege ich Web-Technologien entgegen allen Webstandards, ohne dass ich in Probleme renne, die dann andere für mich lösen müssen?

                nicht nur das.

                Was hat mein Computer heute wieder für ein seltsames Problem, von dem noch niemand vorher gehört hat?

                Wie mogele ich mich am besten durch Ubuntu, ohne Ahnung zu haben?

                Einen schönen Tag noch
                 Martin

                --
                Wie man sich bettet, so schallt es heraus.
                1. problematische Seite

                  @@Der Martin

                  Wie mogele ich mich am besten durch Ubuntu, ohne Ahnung zu haben?

                  In dem Zusammenhang:

                  Why you need all 3 operating systems if you're into tech.
                  macOS: Work
                  Windows: Gaming
                  Linux: Telling people that you use Linux.

                  @TheJackForge

                  🖖 Живіть довго і процвітайте

                  --
                  „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
                  — @Grantscheam auf Twitter
                2. problematische Seite

                  Hi,

                  jau, die Themen von Linuchs sind immer eine Herausforderung…

                  Wie verbiege ich Web-Technologien entgegen allen Webstandards, ohne dass ich in Probleme renne, die dann andere für mich lösen müssen?

                  Was hat mein Computer heute wieder für ein seltsames Problem, von dem noch niemand vorher gehört hat?

                  Wie mogele ich mich am besten durch Ubuntu, ohne Ahnung zu haben?

                  und nun hat er das Print-Subsystem CUPS deinstalliert und wundert sich, dass die Drucker nicht mehr verfügbar sind. 🤓

                  Einen schönen Tag noch
                   Martin

                  --
                  Wie man sich bettet, so schallt es heraus.
                  1. problematische Seite

                    @@Der Martin

                    jau, die Themen von Linuchs sind immer eine Herausforderung…

                    Wie verbiege ich Web-Technologien entgegen allen Webstandards, ohne dass ich in Probleme renne, die dann andere für mich lösen müssen?

                    Was hat mein Computer heute wieder für ein seltsames Problem, von dem noch niemand vorher gehört hat?

                    Wie mogele ich mich am besten durch Ubuntu, ohne Ahnung zu haben?

                    und nun hat er das Print-Subsystem CUPS deinstalliert und wundert sich, dass die Drucker nicht mehr verfügbar sind. 🤓

                    Ich frag mich, woher sein Name stammt. Der kann ja weder von „Linux“ noch von „Fuchs“ stammen.

                    🖖 Живіть довго і процвітайте

                    --
                    „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
                    — @Grantscheam auf Twitter
                    1. problematische Seite

                      Hallo,

                      Ich frag mich, woher sein Name stammt. Der kann ja weder von „Linux“ noch von „Fuchs“ stammen.

                      Wahrscheinlich von Luchsin…
                      Ich fürchte, wir werden hier ziemlich offic und unstruktiv

                      Gruß
                      Kalk

                      1. problematische Seite

                        Hallo Tabellenkalk,

                        vor allem verunglimpfend. Das geht gar nicht.

                        Ich habe keine Ahnung, wie sehr Linux auf CUPS angewiesen ist, aber offenbar kann man es ja entfernen und das Teil druckt immer noch.

                        Öh, update: offenbar nicht mehr so ganz. Lese gerade erst den neuen Thread. Aber es kann auch sein, dass das Gezicke von CUPS und das, was jetzt passiert, eine gemeinsame Ursache haben, die ganz wo anders zu finden ist.

                        Rolf

                        --
                        sumpsi - posui - obstruxi
                        1. problematische Seite

                          Hallo Rolf,

                          vor allem verunglimpfend. Das geht gar nicht.

                          ja, das ist wohl wahr.

                          Ich habe keine Ahnung, wie sehr Linux auf CUPS angewiesen ist

                          CUPS ist quasi lebenswichtig. Es stellt ein standardisiertes Interface zu den verfügbaren Druckern zur Verfügung. Ohne CUPS müsste jede Anwendung, die drucken will, den Drucker selbst suchen, einen passenden Treiber dafür haben und Daten dann direkt an den Drucker senden.

                          aber offenbar kann man es ja entfernen und das Teil druckt immer noch.

                          Eher nicht. Den Teilerfolg, den Linuchs nach dem Entfernen von CUPS wahrgenommen hat, führe ich auf Kernkomponenten von CUPS zurück, die nicht sofort, sondern erst beim nächsten Systemstart entfernt wurden.

                          Öh, update: offenbar nicht mehr so ganz. Lese gerade erst den neuen Thread. Aber es kann auch sein, dass das Gezicke von CUPS und das, was jetzt passiert, eine gemeinsame Ursache haben, die ganz wo anders zu finden ist.

                          Wie auch immer. Linuchs hat ja immer wieder sehr spezielle Probleme, die nicht wirklich nachvollziehbar sind, probiert unüberlegt gewagte Methoden aus und wundert sich, dass der Patient nicht mehr laufen kann, nachdem er gerade beide Beine amputiert hat. Gleichzeitig lehnt er übliche Ansätze strikt ab, weil sie ihm zu umständlich vorkommen. Das kann nix werden.

                          Einen schönen Tag noch
                           Martin

                          --
                          Wie man sich bettet, so schallt es heraus.
              2. problematische Seite

                Moin,

                Wie verbiege ich Web-Technologien entgegen allen Webstandards, ohne dass ich in Probleme renne, die dann andere für mich lösen müssen?

                "The nice thing about standards is that you have so many to choose from." — Andrew S. Tanenbaum

                Alternativ definiert man einfach seinen eigenen Standard \o/

                Viele Grüße
                Robert

  4. problematische Seite

    Habe ein grünes Lautsprecher-Symbol mit Gimp auf weiss und schwarz gefärbt und jeweils abgespeichert.

    Wieso sind die beiden neuen Dateien 15 x so groß? Macke vom Gimp?

    Merkwürdig auch, dass der Datei-Explorer die Grafik nicht zeigt. Okay, weil weiss, aber die icon_audio.png (schwarz) wird auch nicht gezeigt.

    RGB oder indiziert 1-farbig macht kaum Unterschied.

    grün weiss

    1. problematische Seite

      Hallo Linuchs,

      Wieso sind die beiden neuen Dateien 15 x so groß?

      Das kann an der eingestellten Kompressionsstärke liegen.

      Rolf

      --
      sumpsi - posui - obstruxi
      1. Das kann an der eingestellten Kompressionsstärke liegen.

        Und dann verweigert der Explorer die Anzeige?

        Habe öfter schon umgefärbt mit Gimp. In letzter Zeit stelle ich vermehrt fest, dass sich gewohntes Verhalten von Software ändert, vermutlich durch Updates.

        Monatelang hat der FF täglich zwei, dreimal das Betriebssystem eingefroren, gerne bei Youtube und Foren, die extrem nach draußen telefonieren. Es ging nichts mehr nur noch der Daumen auf den Aus-Knopf.

        Nun friert FF täglich mehrfach ein, aber andere Programme funktionieren noch, auch der Klick auf das Ausschalt-Symbol vom FF. FF neu starten, alle Tabs sind weg und ich muss mich neu anmelden, weil (das will ich so) die Cookies weg sind.

        Löscht ein toter FF noch Cookies oder passiert das bei seiner Re-inkarnation?

        Der PaleMoon ist da robuster, wird aber von Verursachern des Einfrierens abgelehnt, z.B. gutefrage.net:

        Dafür friert nun auch (bisher erst einmal) Filezilla ein.

        1. Hallo,

          Das kann an der eingestellten Kompressionsstärke liegen.

          Und dann verweigert der Explorer die Anzeige?

          normalerweise nicht, das kann ich mir so auch nicht erklären.

          Monatelang hat der FF täglich zwei, dreimal das Betriebssystem eingefroren, gerne bei Youtube und Foren, die extrem nach draußen telefonieren. Es ging nichts mehr nur noch der Daumen auf den Aus-Knopf.

          Habe ich auch oft erlebt. Das war für mich der Grund, auf Pale Moon umzusteigen.

          Nun friert FF täglich mehrfach ein, aber andere Programme funktionieren noch, auch der Klick auf das Ausschalt-Symbol vom FF. FF neu starten, alle Tabs sind weg und ich muss mich neu anmelden, weil (das will ich so) die Cookies weg sind.

          Früher (so in Version 40 oder so) hat Firefox noch irgendwo im Hintergrund ein Zettelchen gehabt, auf dem er minutiös die aktuell offenen Tabs notiert hat. Wurde er gewaltsam beendet, hat er mir beim Neustart angeboten, die Tabs der vorherigen Sitzung (oder wenigstens einige davon) wiederherzustellen.

          Das haben ihm die Entwickler leider irgendwann abgewöhnt.

          Löscht ein toter FF noch Cookies oder passiert das bei seiner Re-inkarnation?

          Ich glaube nicht, dass er beim gewaltsamen Tod noch Gelegenheit dazu hat, daher vermute ich eher letzteres.

          Der PaleMoon ist da robuster

          Ja, nicht zuletzt deshalb, weil sein Speicherhunger etwas geringer ist.

          wird aber von Verursachern des Einfrierens abgelehnt, z.B. gutefrage.net:

          Das ist ja nur ein gutgemeinter Rat, den du beherzigen kannst oder auch nicht.

          Einen schönen Tag noch
           Martin

          --
          Wie man sich bettet, so schallt es heraus.
          1. Hallo

            Das kann an der eingestellten Kompressionsstärke liegen.

            Und dann verweigert der Explorer die Anzeige?

            normalerweise nicht, das kann ich mir so auch nicht erklären.

            Prinzipiell ist das durchaus möglich. Der Dateimanager benutzt für die Generierung von Vorschauen irgendwelche Bibliotheken, die an einzelnen Features der zu interpretierenden Dateien scheitern können. Eine Kompressionsstärke von 9 (Maximum) bei PNG sollte bei einem aktuellem OS [1] allerdings nicht dazugehören.

            Nun friert FF täglich mehrfach ein, aber andere Programme funktionieren noch, auch der Klick auf das Ausschalt-Symbol vom FF. FF neu starten, alle Tabs sind weg und ich muss mich neu anmelden, weil (das will ich so) die Cookies weg sind.

            Früher (so in Version 40 oder so) hat Firefox noch irgendwo im Hintergrund ein Zettelchen gehabt, auf dem er minutiös die aktuell offenen Tabs notiert hat. Wurde er gewaltsam beendet, hat er mir beim Neustart angeboten, die Tabs der vorherigen Sitzung (oder wenigstens einige davon) wiederherzustellen.

            Das haben ihm die Entwickler leider irgendwann abgewöhnt.

            Wie kommst du darauf? Um die Tabs aus der letzten Browsersitzung bei einem Start des Browsers erneut laden zu können, muss der Browser auch heutzutage immer noch wissen, welche Tabs geöffnet sind. Und auch, wenn man den Browser nicht so einstellt, dass er mit den Tabs der letzten Sitzung startet, merkt er sich die offenen Tabs. Wenn ich meinen Firefox so einstelle, dass er nicht mit den alten Tabs startet, ihn wie auch immer abwürge und dann neustarte, jammert er rum, dass er unerwartet beendet wurde und bietet mir an, die alten Tabs neu zu laden oder mit einer neuen Browsersitzung (dann nur mit der allfälligen Startseite) zu beginnen. Soweit ich diuch nicht völlig falsch interpretiere, ist das genaus das Verhalten, dass du beschreibst und dem Firefox für Versionen nach 40 („oder so“ 😁) absprichst.

            wird aber von Verursachern des Einfrierens abgelehnt, z.B. gutefrage.net:

            Das ist ja nur ein gutgemeinter Rat, den du beherzigen kannst oder auch nicht.

            Grundsätzlich ist das die Information eines Seitenanbieters, dass nicht alle von ihm dem Nutzer bereitgestellten und/oder übergeholfenen Funktionen im Browser des Nutzers ausgeführt werden. Da kann eine Feature-Detection stattgefunden haben, in deren Ergebnis festgestellt wurde, dass der Browser tatsächlich alt ist. Da kann aber auch versucht worden sein, weitere Skripte nachzuladen, was wegen einer Schutzmaßnahme des Browsers oder eines Plugins nicht funktioniert.

            Mir begegnet sowas mit aktuell gehaltenem Firefox gelegentlich mal auf Seiten, denen ich das Nachladen von Skripten aus Drittquellen verbiete. Die können dann einige ihrer Funktionen nicht ausführen und ningeln dann rum. Speziell bei Linuchs, der ja gerne mal mit (nach Maßstäben Anderer) veralteten Arbeitsmitteln um die Ecke kommt, kann prinzipiell aber beides zutreffen.

            Tschö, Auge

            --
            200 ist das neue 35.

            1. Ich benutze für das Scannen von Dokumenten noch eine Windows-2000-VM, weil es für den Scanner weder Linux-Treiber noch für Windows-Versionen nach XP Treiber gibt. Auf der VM ist auch PSP7 installiert und der programmeigene Bilddateimanager (Browser) kommt mit PNG nur bis zur Kompressionsstufe 6 und ohne EXIF-Infos zurecht. So ein altes Programm in einem derart alten OS ist aber kein Maßstab. ↩︎

            1. Hallo,

              Früher (so in Version 40 oder so) hat Firefox noch irgendwo im Hintergrund ein Zettelchen gehabt, auf dem er minutiös die aktuell offenen Tabs notiert hat. Wurde er gewaltsam beendet, hat er mir beim Neustart angeboten, die Tabs der vorherigen Sitzung (oder wenigstens einige davon) wiederherzustellen.

              Das haben ihm die Entwickler leider irgendwann abgewöhnt.

              Wie kommst du darauf?

              weil ich mich über den Wegfall dieses Features damals sehr geärgert habe.

              Um die Tabs aus der letzten Browsersitzung bei einem Start des Browsers erneut laden zu können, muss der Browser auch heutzutage immer noch wissen, welche Tabs geöffnet sind. Und auch, wenn man den Browser nicht so einstellt, dass er mit den Tabs der letzten Sitzung startet, merkt er sich die offenen Tabs.

              Solange er läuft, klar. Aber vermutlich nur im RAM und nicht persistent.

              Wenn ich meinen Firefox so einstelle, dass er nicht mit den alten Tabs startet, ihn wie auch immer abwürge und dann neustarte, jammert er rum, dass er unerwartet beendet wurde und bietet mir an, die alten Tabs neu zu laden oder mit einer neuen Browsersitzung (dann nur mit der allfälligen Startseite) zu beginnen. Soweit ich diuch nicht völlig falsch interpretiere, ist das genaus das Verhalten, dass du beschreibst und dem Firefox für Versionen nach 40 („oder so“ 😁) absprichst.

              Ja. Seit einigen Jahren etwa tut er das nur noch, wenn man ihm erlaubt, eine History (in der deutschen Fassung "Chronik") über Browser-Sessions hinweg zu führen. Das bedeutet aber auch: Die History jedes einzelnen Tabs. Und das will ich nicht. Die soll zumindest beim ordnungsgemäßen Schließen des Browsers vergessen sein.
              Das Mitloggen des aktuellen Ist-Zustands (also nur: Welches Dokument/URL ist aktuell in welchem Tab geladen) war früher unabhängig davon.

              Das ist ja nur ein gutgemeinter Rat, den du beherzigen kannst oder auch nicht.

              Grundsätzlich ist das die Information eines Seitenanbieters, dass nicht alle von ihm dem Nutzer bereitgestellten und/oder übergeholfenen Funktionen im Browser des Nutzers ausgeführt werden. Da kann eine Feature-Detection stattgefunden haben, in deren Ergebnis festgestellt wurde, dass der Browser tatsächlich alt ist. Da kann aber auch versucht worden sein, weitere Skripte nachzuladen, was wegen einer Schutzmaßnahme des Browsers oder eines Plugins nicht funktioniert.

              Es kann auch einfach bloß bedeuten: Du benutzt einen Browser, den ich nicht (er)kenne, ich kann daher für nichts garantieren.

              Mir begegnet sowas mit aktuell gehaltenem Firefox gelegentlich mal auf Seiten, denen ich das Nachladen von Skripten aus Drittquellen verbiete. Die können dann einige ihrer Funktionen nicht ausführen und ningeln dann rum.

              Auch eine Möglichkeit.

              Einen schönen Tag noch
               Martin

              --
              Wie man sich bettet, so schallt es heraus.
      2. problematische Seite

        Das kann an der eingestellten Kompressionsstärke liegen.

        Daran habe ich noch nie (bewusst) geschraubt. Fällt dir was auf?

        Habe die Exif usw. ent-kreuzt. Jetzt wieder nur 948 Bytes. Aber (auch beim schwarzen) keine Vorschau im Explorer.

        Danke für den Tipp.

    2. problematische Seite

      Hallo,

      Habe ein grünes Lautsprecher-Symbol

      hatte grad mal Lust, mit SVG rumzuspielen:

      <svg 
        xmlns="http://www.w3.org/2000/svg" 
        xmlns:xlink="http://www.w3.org/1999/xlink" 
        width="640" 
        height="640" >
      
          <rect x="0" y="0" width="100%" height="100%" fill="white"/>
       
          <path id="speaker" d="m150,200 l150-150 v500 
           l-150-150 h-80 v-200 z v200 m250,0 
           a 150,150 1 0  0  0,-200 m50-50 a200,200 0 0 1  0,300" 
           fill="none"  stroke="green" stroke-width="40" 
           stroke-linecap="round" stroke-linejoin="round" />
      </svg>
      

      Wieso sind die beiden neuen Dateien 15 x so groß? Macke vom Gimp?

      mit SVG dann ca. 0.5 x so groß.

      gibt bestimmt Verbesserungspotential…

      Gruß
      Kalk