Henry: Javascript echter Inhalt/Pfad aus src auslesen

Hallo,

wie komme ich an die echte Angabe aus dem Quelltext?

<img src="xy.jpg" border="3" height="50" width="50" onclick="alert(this.src);" />Pfad anzeigen

Beispiel auf Fiddle

Sollte doch eigentlich "xy.jpg" rauskommen, stattdessen kommt der Absolute Pfad.
z.B. "http://fiddle/jshell.net/_display/xy.jpg"

Natürlich könnte ich den String jetzt splitten, aber das wäre keine variable Lösung. Geht's auch anders?

Gruss
Henry

  1. Hallo Henry,

    Natürlich könnte ich den String jetzt splitten, aber das wäre keine variable Lösung. Geht's auch anders?

    getAttribute("src")

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. Hallo Matthias,

      getAttribute("src")`

      Gut zu wissen, dass getAttribute() wohl dem eigentlichen Quelltext näher kommt. Vielen Dank für die schnelle Lösung.

      Gruss
      Henry

      1. @@Henry

        Gut zu wissen, dass getAttribute() wohl dem eigentlichen Quelltext näher kommt. Vielen Dank für die schnelle Lösung.

        Element.getAttribute('src') liefert – wie der Name schon vermuten lässt – den Wert des Attributs.

        Element.src liefert den Wert der Eigenschaft src des Elementobjekts. Das ist der aufgelöste vollständige Pfad, auch wenn im src-Attribut ein relativer angegeben wurde.

        Analog:

        <input id="my-checkbox" type="checkbox" checked="checked"/>
        <label for="my-checkbox">my checkbox</label>
        
        console.log(document.querySelector('#my-checkbox').checked); // true
        console.log(document.querySelector('#my-checkbox').getAttribute('checked')); // "checked"
        

        Die Eigenschaft checked des Elementobjekts beïnhaltet einen booleschen Wert; egal ob im HTML checked="checked", checked="" oder checked ohne Wertzuweisung steht:

        <input id="my-checkbox" type="checkbox" checked/>
        <label for="my-checkbox">my checkbox</label>
        
        console.log(document.querySelector('#my-checkbox').checked); // true
        console.log(document.querySelector('#my-checkbox').getAttribute('checked')); // ""
        

        (BTW, checked ist auch true, wenn im HTML checked="false" stünde.)

        Ebenso:

        <dialog id="my-dialog" hidden>
        
        console.log(document.querySelector('#my-dialog').hidden); // true
        console.log(document.querySelector('#my-dialog').getAttribute('hidden')); // ""
        

        LLAP 🖖

        --
        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
        1. Lieber Gunnar,

          beïnhaltet

          ich verstehe, warum Du das so schreibst (um den Diphtong "ei" zu vermeiden), aber so geschrieben kennt der Duden das Wort nicht, womit Deine Schreibweise an der offiziell korrekten vorbeischlittert.

          Liebe Grüße,

          Felix Riesterer.

          1. Hi,

            beïnhaltet

            ich verstehe, warum Du das so schreibst (um den Diphtong "ei" zu vermeiden), aber

            das ginge einfacher: enthält

            cu,
            Andreas a/k/a MudGuard

            1. Eigentlich müsste es ja Eigenschaftin heißen da Eigenschaft ja weiblich ist. Wenn schon Genderismus, dann richtig.

              Komme die aus Hesse (danke Heinz Schenk). Freundschaft 😉

            2. @@MudGuard

              beïnhaltet

              das ginge einfacher: enthält

              Was fast ein Synonym ist. Aber nur fast. Manchmal passt beides gleichermaßen, manchmal passt eins besser als das andere.

              Und wenn ich in der mündlichen Sprache „beïnhaltet“ sagen würde, sehe ich keinen Grund, das in der Schriftsprache nicht zu tun, nur weil „beinhaltet“ etwas komisch aussehen könnte. Dann setze ich lieber ein Trema – auch wenn der Duden das nicht vorsieht.

              LLAP 🖖

              --
              “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
              1. Lieber Gunnar,

                Und wenn ich in der mündlichen Sprache „beïnhaltet“ sagen würde, sehe ich keinen Grund,

                Du vielleicht nicht, aber andere. Und die haben sprachwissenschaftliche Gründe.

                das in der Schriftsprache nicht zu tun, nur weil „beinhaltet“ etwas komisch aussehen könnte.

                Es sieht nicht komisch aus, es entspricht nicht den "specs" aka Rechtschreibregeln.

                Dann setze ich lieber ein Trema – auch wenn der Duden das nicht vorsieht.

                Nein, dann solltest Du lieber einen Bindestrich setzen: be-inhaltet

                Liebe Grüße,

                Felix Riesterer.

                1. @@Felix Riesterer

                  nur weil „beinhaltet“ etwas komisch aussehen könnte.

                  Es sieht nicht komisch aus, es entspricht nicht den "specs" aka Rechtschreibregeln.

                  Gegen welche Regel genau verstößt denn „beinhaltet“? 😜

                  Dann setze ich lieber ein Trema

                  Nein, dann solltest Du lieber einen Bindestrich setzen: be-inhaltet

                  Was wäre damit gewonnen?

                  LLAP 🖖

                  --
                  “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                  1. Lieber Gunnar,

                    Was wäre damit gewonnen?

                    Rechtschreibregelkonformität unter gleichzeitiger Berücksichtigung Deines Wunsches der Lautung gerecht zu werden - (soll ich das als Buchtitel verwenden?)

                    Liebe Grüße,

                    Felix Riesterer.

                    1. Hello,

                      Rechtschreibregelkonformität unter gleichzeitiger Berücksichtigung Deines Wunsches der Lautung gerecht zu werden - (soll ich das als Buchtitel verwenden?)

                      Grins:

                      Die Gerechtigkeit des Lehrers unter besonderer Berücksichtigung der höheren Lehranstalten.

                      Sehen wir es doch mal so. Ein Trema ist die für diesen Zweck vorgesehene Auszeichnung des Textes, und auch in der deutschen Sprache zulässig. Es wurde bisher allerdings nur selten benutzt - warum weiß der Geier (woher weiß der das?). Aber warum muss immer alles so bleiben wie es war?

                      Lieber Felix, Du wirst nach meinem Empfinden immer "konservativer" und damit unheimlicher. :-O

                      (Der einzige Lichtblick dabei ist meine Hoffnung, dass Du vermutlich nicht die SPD wählen wirst :-P )

                      Liebe Grüße
                      Tom S.

                      --
                      Es gibt nichts Gutes, außer man tut es
                      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                      1. Lieber TS,

                        Grins:

                        Die Gerechtigkeit des Lehrers unter besonderer Berücksichtigung der höheren Lehranstalten.

                        jap, das steckte mir so hinten quer im Hirn als ich das schrubte.

                        Sehen wir es doch mal so.

                        Mit oder ohne Brille? Das ist immerhin nicht dasselbe.

                        Ein Trema ist die für diesen Zweck vorgesehene Auszeichnung des Textes, und auch in der deutschen Sprache zulässig.

                        Ich fände es sehr schön, um diese Ambiguität mit dem Bein-halten aufzulösen.

                        Aber warum muss immer alles so bleiben wie es war?

                        Das ist nicht mein Ansinnen. Die letzte Rechtschreibreform der deutschen Sprache war eine Maximalkatastrophe weil eine Verschlimmbesserung. Da sind wir uns alle einig ("aufwändig" vs. "aufwendig" schüttel). Aber an welche Specs sollen wir uns denn da halten, wenn die aktuelle kaputt ist? Leider haben wir da noch weniger Einfluss (könnten ja ein RFC schreiben g) als auf den restlichen Unsinn, den unsere Politiker da so treiben.

                        Im Sinne der "Energie des Verstehens" könnten wir eine neue Rechtschreibreform entwerfen und die mit der Macht der sozialen Medien zum Quasistandard erheben. Was meinst Du dazu?

                        Lieber Felix, Du wirst nach meinem Empfinden immer "konservativer" und damit unheimlicher. :-O

                        Das hat mich jetzt nicht amüsiert... :-/ bäh

                        (Der einzige Lichtblick dabei ist meine Hoffnung, dass Du vermutlich nicht die SPD wählen wirst :-P )

                        Nee, ganz sicher nicht. Auch wenn ich in der aktuellen politischen Lage noch schwärzer sehe als sonst, sind auch die Parteien mit dieser Farbe noch immer keine Option für mich. Aktuell bin ich echt ratlos, welche Partei ich wohl wählen sollte, da alle ohne Ausnahme mich irgendwann richtig enttäuscht haben.

                        Liebe Grüße,

                        Felix Riesterer.

                    2. @@Felix Riesterer

                      Rechtschreibregelkonformität

                      „Wenn man alle Gesetze studieren sollte, so hätte man gar keine Zeit, sie zu übertreten.“ (Johann Wolfgang von Goethe)[1]

                      Rechtschreibregelkonformität nur um der Rechtschreibregelkonformität Willen macht auch wenig Sinn.

                      Das große ẞ war auch lange Zeit nicht regelkonform. Jetzt tut sich da wohl etwas.

                      Und ist das Interrobang denn regelkonform‽

                      LLAP 🖖

                      --
                      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory

                      1. heute morgen auf Twitter ↩︎

                      1. Lieber Gunnar,

                        „Wenn man alle Gesetze studieren sollte, so hätte man gar keine Zeit, sie zu übertreten.“ (Johann Wolfgang von Goethe)

                        nicht jedes Gesetz kann der "gemeine Mann" übertreten. Daher hat der gute alte Wolgang mit seinem Kalauer (mehr ist dieses Zitat in meinen Augen nicht) einfach mal wieder sein Gehirn flatulent stoßgelüftet.

                        Rechtschreibregelkonformität nur um der Rechtschreibregelkonformität Willen macht auch wenig Sinn.

                        Warum? Inwiefern sollte es weniger Sinn haben (machen kann es keinen Sinn), als irgend eine andere Konformität von Syntax in anderen Sprachen?

                        Das große ẞ war auch lange Zeit nicht regelkonform. Jetzt tut sich da wohl etwas.

                        Es ist und bleibt eine Ligatur von sz. Diese ist im Deutschen nicht am Wortanfang zu finden. Daher hat dieser Großbuchstabe im Deutschen bisher keinen Platz. Wenn man nun in Versalien schreiben möchte, ist es sinnvoll und auch die geltende Regel, diese Ligatur auszuschreiben. Mittlerweile hat sich die Ligatur "sz" in "ss" gewandelt, sodass z.B. auch die Browser font-variant: small-caps passend anwenden. Ob und inwiefern dieses den Umlauten gegenüber inkonsequent ist, darüber mag man von mir aus streiten, jedoch sind diese im Deutschen durchaus am Wortanfang zu finden und von daher in der Verlegenheit auch als Großbuchstabe existieren zu müssen.

                        Und ist das Interrobang denn regelkonform‽

                        Es ist in meinen Augen eine Missgeburt, sodass ich Dir in dieser Frage keine sachliche Antwort geben kann.

                        Liebe Grüße,

                        Felix Riesterer.

                        1. Hallo Felix,

                          Diese ist im Deutschen nicht am Wortanfang zu finden. Daher hat dieser Großbuchstabe im Deutschen bisher keinen Platz. Wenn man nun in Versalien schreiben möchte, ist es sinnvoll und auch die geltende Regel, diese Ligatur auszuschreiben. Mittlerweile hat sich die Ligatur "sz" in "ss" gewandelt, sodass z.B. auch die Browser font-variant: small-caps passend anwenden.

                          Das stimmt, in der Begründung des Rats für deutsche Rechtschreibung bezieht man sich aber darauf, dass es bei amtlichen Dokumenten um Eindeutigkeit geht und da dort Namen und andere Angaben in Großbuchstaben geschrieben werden, behält man dort das kleine ß teilweise einfach bei. Da dieser Buchstabe seit 2008 im Unicode-Standard enthalten ist (und auch verwendet wird und auch schon früher verwendet wurde), ermöglicht es die Regeländerung jetzt auch, es – neben der bisherigen Schreibweise mit den großen Doppel-S – einzusetzen, ohne dass man gegen die Rechtschreibregeln verstößt.

                          Gruß
                          Julius

                        2. Hallo Felix Riesterer,

                          nicht jedes Gesetz kann der "gemeine Mann" übertreten.

                          Physikalische Gesetze lassen sich nicht brechen oder übertreten, ja nicht einmal auslegen. 😉

                          Bis demnächst
                          Matthias

                          --
                          Rosen sind rot.
                        3. @@Felix Riesterer

                          Rechtschreibregelkonformität nur um der Rechtschreibregelkonformität Willen macht auch wenig Sinn.

                          Warum? Inwiefern sollte es weniger Sinn haben (machen kann es keinen Sinn), als irgend eine andere Konformität von Syntax in anderen Sprachen?

                          Guter Vergleich: Es ist wie bei HTML. Da ist es auch wichtiger, dass es sinnvoll ist als dass es valide ist.

                          Das große ẞ war auch lange Zeit nicht regelkonform. Jetzt tut sich da wohl etwas.

                          Es ist und bleibt eine Ligatur von sz. […] Mittlerweile hat sich die Ligatur "sz" in "ss" gewandelt

                          Nein, ß ist schon lange keine Ligatur mehr, sondern ein Buchstabe.

                          AFAIK ist das ß als Ligatur von zwei s (nämlich aus langem ſ und rundem s) entstanden, nicht aus ſ und z.

                          Diese ist im Deutschen nicht am Wortanfang zu finden. Daher hat dieser Großbuchstabe im Deutschen bisher keinen Platz.

                          Womöglich war es zu der Zeit, als das ß entstand, gar nicht üblich, zur Hervorhebung in Versalien zu schreiben. Deshalb fehlte das Versal-ẞ.

                          BTW, im Russischen (u.a. slawischen Sprachen) kommen ъ, ы und ь auch nicht am Wortanfang vor. Dennoch gibt es sie auch als Ъ, Ы, Ь.

                          Wenn man nun in Versalien schreiben möchte, ist es sinnvoll und auch die geltende Regel, diese Ligatur auszuschreiben.

                          Da ß keine Ligatur (mehr) ist, ist es mit der Sinnhaftigkeit dessen dahin. Ich halte es für sinnvoller, das Versal-ẞ zu verwenden.

                          Und ist das Interrobang denn regelkonform‽

                          Es ist in meinen Augen eine Missgeburt

                          Ey, was sagst du da zu meinem Lieblingssatzzeichen‽

                          LLAP 🖖

                          --
                          “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                      2. Hallo Gunnar,

                        Das große ẞ war auch lange Zeit nicht regelkonform. Jetzt tut sich da wohl etwas.

                        Beziehst du dich auf den Bericht des Rats für deutsche Rechtschreibung? http://www.rechtschreibrat.com/DOX/rfdr_Bericht_2011-2016.pdf#page=8

                        Wäre schön, wenn die Änderungsvorschläge angenommen werden. Dass die Verwendung des großen ẞ dann erlaubt, aber nicht verpflichtend ist, empfinde ich als guten Kompromiss.

                        Gruß
                        Julius

        2. Tach!

          Kurz gesagt, der Unterschied zwischen Attribut und Eigenschaft ist oftmals vernachlässigbar, aber er existiert. Deswegen hat beispielsweise auch jQuery vor einer Weile bei der Implementierung von .attr() und .prop() aufgeräumt und trennt das strikt.

          dedlfix.

  2. Natürlich könnte ich den String jetzt splitten, aber das wäre keine variable Lösung. Geht's auch anders?

    Freilich. Wenn die Seite per Template erstellt wird, ist es ein Leichtes, den Platzhalter sowohl an src='%src%' als auch an alert('%src%') oder allgemein überall da, wo er gebraucht wird zu notieren (entsprechend TE-Syntax).

    Das ist eine Lösung die mir heute beim Wandern zu einem ganz anderen Problemchen eingefallen ist.

    MfG

    1. Tach!

      Wenn die Seite per Template erstellt wird, ist es ein Leichtes, den Platzhalter sowohl an src='%src%' als auch an alert('%src%') oder allgemein überall da, wo er gebraucht wird zu notieren (entsprechend TE-Syntax).

      Der originale Wert lässt sich doch sehr einfach ermitteln, so dass es keine Notwendigkeit gibt, ihn anderenorts nochmal zu notieren.

      dedlfix.

      1. Der originale Wert lässt sich doch sehr einfach ermitteln, so dass es keine Notwendigkeit gibt, ihn anderenorts nochmal zu notieren.

        Wieso erst ermitteln wenn der Wert bereits zugewiesen ist! In Fakt erfolgt ja die Zuweisung nur einmal, nämlich da wo die Platzhalter mit Daten betankt werden. Da ist es nicht nur unsinnig, einen Wert im Browser neu zu ermitteln, sondern es ist auch eine Fehlerquelle.

        Schönen Tach auch.

        1. Tach!

          Der originale Wert lässt sich doch sehr einfach ermitteln, so dass es keine Notwendigkeit gibt, ihn anderenorts nochmal zu notieren.

          Wieso erst ermitteln wenn der Wert bereits zugewiesen ist!

          Weil der HTML-Text bereits fertig geschrieben ist, wenn er im Browser ankommt.

          In Fakt erfolgt ja die Zuweisung nur einmal, nämlich da wo die Platzhalter mit Daten betankt werden.

          Gesetzt den Fall, dass serverseitig mit einem Platzhaltersystem gearbeitet wird …

          Da ist es nicht nur unsinnig, einen Wert im Browser neu zu ermitteln, sondern es ist auch eine Fehlerquelle.

          Das kann ich nicht nachvollziehen. Wenn es eine Fehlerquelle ist, eine Wertzuweisung zu einem Attribut zu notieren, dann ist sie es nicht minder, ein Stück Javascript-Code zu erzeugen, in dem der Wert einer Variable zugewiesen wird. Und sie werden auch nicht weniger, wenn man statt einer mehrere solcher Stellen zu erzeugen hat, noch dazu, wenn unterschiedliche Kontexte berücksichtigt werden müssen.

          Sollte aber serverseitig ein für den Client fehlerfreier Code erzeugt worden sein, dann ist es ebensowenig eine Fehlerquelle, den Wert aus einem Attribut im DOM zu lesen, wie ihn aus einer Variable oder einem Stringliteral zu lesen.

          dedlfix.

          1. Gesetzt den Fall, dass serverseitig mit einem Platzhaltersystem gearbeitet wird …

            Der tiefere Sinn eines Frameworks … jede Einzelseite ermöglicht Platzhalter (dynamische Inhalte) und Interaktion.

            Das kann ich nicht nachvollziehen.

            Weil Du es nicht verstehst und Dir die Erfahrungen fehlen.

            Wenn es eine Fehlerquelle ist, eine Wertzuweisung zu einem Attribut zu notieren,

            Nein, die Wertzuweisung ist eben nicht in einem Attribut im Browser, sondern nur einmal serverseitig an einem Platzhalter.

            Weil der HTML-Text bereits fertig geschrieben ist, wenn er im Browser ankommt.

            eben. Und dann sind, nachdem der Browser den Hypertext gerendert hat, sämtliche dynamische Inhalte, sichtbare wie unsichtbare, da wo sie hingehören. Ausführliches Beispiel:

            Serverseitig habe ich

            # Wert f. Platzhalter =  HTTP-Parameter     || aus Konfiguration 
            $self->{STASH}{dir}   = $self->param('dir') || $self->eav('dir');
            

            weil ich im Backend sehen will, wie die Current Workdirectory lautet. Also setze ich diesen Wert in einen Platzhalter und für den Browser den Platzhalter in eine Headline:

            <h2>Images im Verzeichnis <em>%dir%</em></h2>
            

            Nun muss ich nur noch dafür sorgen, dass dieser Parameter auch immer dann übergeben wird, wenn aus dem Browser heraus ein Request zurück zum Server ansteht, beispielsweise wenn auf einen Link geklickt wird. Allein dafür ist JavaScript noch gar nicht notwendig, der Platzhalter kommt ins Template, fertig.

            Gebraucht wird der Parameter aber auch in den Script-Bereichen da, wo die Datenstruktur für den Request zusammengebaut wird:

            // Einmal hier
                // Schlüsselparameter setzen
                eav.param = {speichern:1, dir:'%dir%'};
            
            // und einmal da
             var param = {
               dir:    ['%dir%'],
               upload: [1],
               name:   [$('#'+id+'name').text()],
               descr:  [$('#'+id+'descr').text()]
             };
            

            Und wenn irgendwann eine Erweiterung ansteht, muss für den Wert nur noch der Platzhalter eingesetzt werden anstatt den Wert irgendwo rauszupulen. Jetzt stell dir mal vor, in einem Team haben bisher alle Kollegen mit JS in die Headline gegriffen um an 'dir' zu kommen und nun kommt der Chef und die Headline soll weg -- Da wäre an 'zig anderen Stellen JS-Code zu ändern nur weil die Quelle verlegt wird, und da ist schnell mal was vergessen. Das sind eben meine Erfahrungen und genau dieses Beispiel ist auch allzu typisch.

            Natürlich musst Du Deine Erfahrungen selber machen, ich kann hier lediglich über meine Eigenen schreiben. MfG

            1. Hallo pl,

              Das kann ich nicht nachvollziehen.

              Weil Du es nicht verstehst und Dir die Erfahrungen fehlen.

              YMMD.

              Bis demnächst
              Matthias

              --
              Rosen sind rot.
              1. YMMD.

                Dass es mit der fachlichen Kompetenz hier im Forum auch nicht weit her ist, ist ja nüscht Neues. Das sehe ich schon anhand der 'Bewertung' von Beiträgen, diese Arroganz ist geradezu idiotisch.

                Schönen Tach auch.

                1. Hallo pl,

                  Dass es mit der fachlichen Kompetenz hier im Forum auch nicht weit her ist, ist ja nüscht Neues. Das sehe ich schon anhand der 'Bewertung' von Beiträgen, diese Arroganz ist geradezu idiotisch.

                  Mein Lieber Freund und Kupferstecher. Da platzt mir wirklich die Hutschnur. Jedes verdammte mal, wenn es um etwas substantielles geht, verpisst du dich und sagst einfach nichts mehr zum Thema. Uns dann hier Inkompetenz und Arroganz vorzuwerfen weil wir inzwischen einfach keine Lust mehr haben mit dir immer wieder bei Null anzufangen mit der „Diskussion“ ist an Arroganz kaum zu überbieten.

                  Widerlich. Einfach nur widerlich.

                  LG,
                  CK

                  1. Hallo Christian Kruse,

                    Mein Lieber Freund und Kupferstecher. Da platzt mir wirklich die Hutschnur. Jedes verdammte mal, wenn es um etwas substantielles geht, verpisst du dich und sagst einfach nichts mehr zum Thema. Uns dann hier Inkompetenz und Arroganz vorzuwerfen weil wir inzwischen einfach keine Lust mehr haben mit dir immer wieder bei Null anzufangen mit der „Diskussion“ ist an Arroganz kaum zu überbieten.

                    Ja, „unerschütterliches Selbstbewussein“ wäre ein solcher Euphemismus, dass selbst die Verwendung des Wortes Euphemismus einen Euphemismus darstellt.

                    Bis demnächst
                    Matthias

                    --
                    Rosen sind rot.
            2. Tach!

              Das kann ich nicht nachvollziehen.

              Weil Du es nicht verstehst und Dir die Erfahrungen fehlen.

              Ich denke, es ist vielmehr so, dass du deine Lösungen immer nur halb beschreibst. Wesentliche Teile bleiben in deinem Kopf oder in unveröffentlichtem Code. Das Zeigen von Perl-Schnipseln ist auch wenig hilfreich, weil kaum einer diese Sprache versteht und sich der Code auch nicht einigermaßen leicht mit Kenntnissen anderer deutlich populärer Sprachen erschließt. Die daraus entstehenden Missverständnisse würde ich nicht auf mangelnde Erfahrung zurückführen. Aber wenn du mir schon mangeldes Verständnis aufgrund Erfahrung vorwirfst, wie sollen dann erst weniger Fortgeschritte deine Lösungen nachvollziehen? Beschreib sie doch mal zur Abwechslung so, dass man keine Erfahrung benötigt, um sie zu verstehen.

              Wenn es eine Fehlerquelle ist, eine Wertzuweisung zu einem Attribut zu notieren,

              Nein, die Wertzuweisung ist eben nicht in einem Attribut im Browser, sondern nur einmal serverseitig an einem Platzhalter.

              Muss es aber, wenn die URL in einem img-src landen soll, oder nicht?

              Weil der HTML-Text bereits fertig geschrieben ist, wenn er im Browser ankommt.

              eben. Und dann sind, nachdem der Browser den Hypertext gerendert hat, sämtliche dynamische Inhalte, sichtbare wie unsichtbare, da wo sie hingehören.

              Das Problem an der Sache ist nur, dass bei der Erstellung auf dem Server noch gar nicht feststeht, wo auf dem Client der Wert benötigt wird. Das ist ja der Grund, warum er mit Javascript darauf zugreifen möchte. Zumindest reime ich mir das so zusammen, ein konkreter Anwendungsfall wurde nicht genannt, aber es wird sich wohl auch nicht nur um eine einzelne Ausgabe eines Literals mit alert() handeln.

              Mit anderen Worten, es wird für den gegebenen (angenommenen) Fall nicht möglich sein, die Werte als Literal im HTML-Code zu verteilen, sondern es wird neben der Attribut-Zuweisung (src im img) eine irgendwie geartete Übergabe an eine Javascript-Variable oder vergleichbares erfolgen müssen. Und das ist die vermeidbare Redundanz.

              dedlfix.