tag:forum.selfhtml.org,2005:/self Dynamische Links? – SELFHTML-Forum 2020-02-19T16:05:29Z https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765241#m1765241 Rolf r.m@gmx-topmail.de 2020-02-15T13:26:42Z 2020-02-15T14:33:01Z Dynamische Links? <p>Moin,</p> <p>ich würde gern Links erzeugen, die nicht auf eine statische Adresse verweisen, sondern weitere Anweisungen "mitschicken". Es geht darum, daß ein Link eine neue Seite im Browser öffnen soll (" target="_blank") und dann jeweils drei Bilder öffnet. Für den ersten Link würde der Inhalt der Seite so aussehen:</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**1**_1.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**1**_2.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**1**_3.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p>Für den zweiten Link müßte "Foto10<strong>1</strong>" durch "Foto10<strong>2</strong>" ersetzt werden, also:</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**2**_1.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**2**_2.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**2**_3.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p>usw.</p> <p>Das Aufrufen der Bilder funktioniert wunderbar, auch das Erzeugen der durchnumerierten IMG-Links ist dank Tabellenkalkulation kein Problem. Bis jetzt steht jede Gruppe von drei IMG-Links in einer separaten HTML-Datei, auf die ich auch erst wieder (zu Fuß) einen Link setzen muß. Was ich gern hätte, ist eine Automatisierung in der Form, daß ein Link ein neues (leeres) Fenster öffnet und gleich die drei zugehörigen IMG-Links aufruft, z.B.</p> <p>Link 10<strong>1</strong> > Foto10<strong>1</strong>_1, Foto10<strong>1</strong>_2, Foto10<strong>1</strong>_3</p> <p>Link 10<strong>2</strong> > Foto10<strong>2</strong>_1, Foto10<strong>2</strong>_2, Foto10<strong>2</strong>_3</p> <p>usw.</p> <p>Ich hoffe, ihr habt mein Problem verstanden. Ich brauche keine Hilfe beim Erzeugen der Links, das macht die Tabellenkalkulation, wenn ich erstmal weiß, wie einer dieser Links aussehen muß. Vielen Dank schon mal für eure Hilfe.</p> <p>Rolf</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765243#m1765243 klawischnigg 2020-02-15T13:33:59Z 2020-02-15T13:33:59Z Dynamische Links? <p>Hi there,</p> <blockquote> <p>ich würde gern Links erzeugen, die nicht auf eine statische Adresse verweisen, sondern weitere Anweisungen "mitschicken". Es geht darum, daß ein Link eine neue Seite im Browser öffnen soll (" target="_blank") und dann jeweils drei Bilder öffnet. Für den ersten Link würde der Inhalt der Seite so aussehen:</p> </blockquote> <p>Einmal abgesehen davon, daß automatisches Öffnen von Fnstern oder Seiten an sich keine gute Idee ist (so etwas läßt man idR besser den Anwender/Besucher entscheiden)</p> <blockquote> <p><IMG src="https://www.example.de/Foto10<strong>1</strong>_1.jpg"><br> <IMG src="https://www.example.de/Foto10<strong>1</strong>_2.jpg"><br> <IMG src="https://www.example.de/Foto10<strong>1</strong>_3.jpg"></p> </blockquote> <p>schreibst Du obige Zeilen einfach in ein HTML-Dokument, das Du zB. "fotos_1.html" nennst und das rufst Du dann mit <a href="fotos_1.html">Serie 1</a>" auf. Also, entweder Dein "Problem" ist so einfach oder ich hab's einfach falsch verstanden…</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765251#m1765251 Felix Riesterer https://felix-riesterer.de 2020-02-15T14:25:56Z 2020-02-15T14:25:56Z Dynamische Links? <p>Lieber Rolf,</p> <blockquote> <p>daß ein Link eine neue Seite im Browser öffnen soll</p> </blockquote> <p>und wie ist das für Smartphone-Anwender? Glaubst Du, dass die mit diesem neuen Fenster gut zurecht kommen werden? Mit allen drei Bildern auf einmal?</p> <p>Es hat einen Sinn, solche Popups nicht zu verwenden, oder sie innerhalb der Seite <a href="https://wiki.selfhtml.org/wiki/HTML/Tutorials/Lightbox_einbinden" rel="nofollow noopener noreferrer">über einen JavaScript-Mechanismus anzubieten</a>. Auf einem Smartphone ist wahrscheinlich der blanke Link auf das nackte Bild genug, dass man das wie in einem Popup zu sehen bekommt - nämlich seitenfüllend. Aber solche Lösungen wie die von mir verlinkte dürfen sich dann um all diese nervtötenden Feinheiten kümmern, wie das auf welchem Endgerät mit welchen Anzeigeabmessungen (viewport) wie verhält (hoffentlich sinnvoll). Für Dich als Autor bleibt das nackte HTML zu erstellen.</p> <p>Liebe Grüße</p> <p>Felix Riesterer</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765256#m1765256 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2020-02-15T14:54:58Z 2020-02-15T14:54:58Z Dynamische Links? <p>@@Rolf</p> <blockquote> <p>Es geht darum, daß ein Link eine neue Seite im Browser öffnen soll (" target="_blank")</p> </blockquote> <p>Oh je, wirklich? <a href="https://adrianroselli.com/2020/02/link-targets-and-3-2-5.html" lang="en" rel="nofollow noopener noreferrer">Link Targets and 3.2.5</a></p> <blockquote> <p>Für den ersten Link würde der Inhalt der Seite so aussehen:</p> <pre><code class="block bad language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**1**_1.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**1**_2.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/Foto10**1**_3.jpg<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> </blockquote> <p><a href="https://wiki.selfhtml.org/wiki/HTML/Multimedia_und_Grafiken/Grafiken#Pflichtangaben" rel="nofollow noopener noreferrer">Die Alternativtexte fehlen.</a> (Und auch wenn es keine Alternativtexte geben sollte, sollte das <code>alt</code>-Attribut vorhanden sein.)</p> <p>Statt <code>br</code> solltest du besser CSS einsetzen, bspw. <code class="language-css"><span class="token selector">img</span> <span class="token punctuation">{</span><span class="token property">display</span><span class="token punctuation">:</span> block<span class="token punctuation">}</span></code>.</p> <hr> <p>Du möchtest wahrscheinlich etwas Generisches, wo du die Gruppe der jeweils gewünschten Fotos als Parameter übergibst.</p> <p>Der URL sieht dann bspw. so aus: <code>https://www.example.de/foto?image=Foto101</code>.</p> <p>Hinter <code>foto</code> verbirgt sich ein serverseitiges Script (PHP, SSI, …), welches das Markup generiert:</p> <pre><code class="block language-php"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/<span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'image'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token delimiter important">?></span></span>_1.jpg<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/<span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'image'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token delimiter important">?></span></span>_2.jpg<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.example.de/<span class="token php language-php"><span class="token delimiter important"><?=</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'image'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token delimiter important">?></span></span>_3.jpg<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p>LLAP </p> <div class="signature">-- <br> Wenn der Faschismus wiederkommt, wird er nicht sagen: Hallo, ich bin der Faschismus! Sondern er wird sagen: Ich nehme die Wahl an. </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765272#m1765272 Rolf r.m@gmx-topmail.de 2020-02-15T22:22:14Z 2020-02-15T22:22:14Z Dynamische Links? <p>Moin,</p> <p>hier ist ja schon einiges los, leider nichts dabei, was mir weiterhilft. Scheinbar muß ich noch einiges klarstellen:</p> <p>Die eigene HTML-Datei für jede einzelne Bildergruppe gibt es jetzt schon, das ist gerade das, wovon ich weg will. Das sind nicht nur 5 Stück, sondern diesen Monat 591, nächsten Monat wieder ein paar 100 usw. Irrer Aufwand, diese Dateien zu erstellen und zu verlinken.</p> <p>Das Öffnen im neuen Fenster ist ausdrücklich erwünscht, die Darstellung erfolgt ausschließlich auf großen Computermonitoren (ist nur für internen Gebrauch). Wenn es eine technisch einfachere Lösung gäbe, die die Bilder nach einem Klick auf den Link im SELBEN Fenster öffnet, könnte ich auch damit klarkommen (ungern).</p> <p>Es ist übrigens auch KEINE Option, einfach alle IMG-Links in die HTML-Datei einzufügen, aus der heraus sie aufgerufen werden sollen, das würde mir, um beim Beispiel dieses Monats zu bleiben, 3 x 591 Bilder auf den Monitor zaubern. Ich möchte an dieser Stelle nur die Links haben, zusammen mit noch 5 x 591 anderen (unproblematischen) Links, die in einer Tabelle schön angeordnet sind.</p> <p>Ich beherrsche KEINE Programmiersprache, auch in HTML habe ich nur rudimentäre Kenntnisse.</p> <p>Es ist KEIN Server im Spiel. OK, es gibt wohl einen Server da, wo die Bilder liegen. Da kann ich aber nicht weiter drauf zugreifen, einfach nur die Bilder abrufen.</p> <p>Alternativtexte sind hier mal nicht nötig, weil man die IMG-Links gar nicht erst zu sehen bekommt, nach dem Öffnen der Seite erscheinen ja sofort die Bilder. Und laßt mich einfach <br> verwenden, das reicht für die Anwendung völlig aus, die Links sind über das Internet gar nicht erreichbar.</p> <p>Den Vorschlag von Gunnar mit dem serverseitigen Script hab' ich nicht verstanden, aber wahrscheinlich macht das nichts, weil es mangels Server ohnehin nicht umsetzbar ist.</p> <p>Ich versuche nochmal deutlich zu machen, was ich eigentlich will: die IMG-Links sollen nicht im Inhalt der HTML-Datei stehen, sondern vom Link übergeben werden, also in der Adreßzeile des Browsers. So wie jeder andere Link, der (optional eine neue) Seite öffnet, soll dieser das auch tun, nur daß er nebenbei noch die Information mitschickt, welche drei Bilder geladen werden sollen.</p> <p>Rolf</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765309#m1765309 Rolf r.m@gmx-topmail.de 2020-02-16T20:42:00Z 2020-02-17T02:15:40Z Dynamische Links? <p>Moin,</p> <p>ich hab' mal weitergesucht. Das mit dem "clientseitigen Script" war schon wieder "zu hoch" für mich, aber die Suche danach hat mit auf Umwegen auf den Begriff "Query String" gebracht, und das ist genau das, was ich suche. Ich kriege ihn aber nicht richtig zusammengebastelt, vielleicht hat einer von Euch die zündende Idee?</p> <p>Zum besseren Verständnis zeige ich Euch erstmal, was ich bisher mache. Wie bereits erwähnt, habe ich eine HTML-Datei mit vielen Links, von denen die meisten direkt ins Internet verweisen. In einer Spalte stehen bis jetzt Links, die lokal auf meinem Rechner gespeicherte HTML-Dateien aufrufen. Eine davon heißt z.B. "STZ.htm". Der Inhalt dieser Datei ist folgender:</p> <pre><code class="block"><IMG src="https://finviz.com/chart.ashx?t=STZ&ty=c&ta=0&p=d&s=l" border="2"><br><br> <IMG src="https://finviz.com/chart.ashx?t=STZ&ty=c&ta=0&p=w&s=l" border="2"><br><br> <IMG src="https://finviz.com/chart.ashx?t=STZ&ty=c&ta=0&p=m&s=l" border="2"> </code></pre> <p>Ihr könnt Euch sicher denken, was passiert, wenn ich den Link anklicke, das Ergebnis sieht so aus:</p> <p><a href="/images/bf683972-50f9-11ea-909f-b42e9947ef30.png" rel="noopener noreferrer"><img src="/images/bf683972-50f9-11ea-909f-b42e9947ef30.png?size=medium" alt="Screenshot" title="Screenshot" loading="lazy"></a></p> <p>Jetzt hätte ich gern, daß ich nicht erst jeden Monat hunderte HTML-Dateien und Links erstellen muß, sondern dieses Ergebnis direkt mit einem Link abfragen kann, ohne den Umweg über eine lokale Datei. Mit dem "Query String" gelingt mir das jeweils nur für EINES der drei Bilder, ich möchte sie aber gleichzeitig und möglichst in EINEM Browserfenster sehen.</p> <p>Diese "Query Strings" funktionieren - jeder für sich:</p> <p>https://finviz.com/chart.ashx?t=STZ&p=d</p> <p>https://finviz.com/chart.ashx?t=STZ&p=w</p> <p>https://finviz.com/chart.ashx?t=STZ&p=m</p> <p>Es gelingt mir nur nicht, die so zu verknüpfen, daß alle drei Bilder abgerufen werden, wie oben im Bild gezeigt. Ich schreibe z.B. in die Adreßzeile:</p> <p>https://finviz.com/chart.ashx?t=STZ&amp;p=d&t=STZ&amp&p=w&t=STZ&amp;p=m</p> <p>und bekomme NUR EINES der drei Bilder angezeigt. Mache ich was falsch oder geht das tatsächlich nicht?</p> <p>Rolf</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765351#m1765351 Rolf r.m@gmx-topmail.de 2020-02-17T13:14:09Z 2020-02-17T13:14:09Z Dynamische Links? <p>Moin,</p> <p>erstmal ein paar Antworten auf die letzten Posts, ganz unten dann eine neue Idee ...</p> <blockquote> <p>drück mal F12 (Firefox) und guck mal im Netzwerktab ob die 3 Requests auch wirklich rausgehen.</p> </blockquote> <p>Ich denke, Du meinst das hier:</p> <p><a href="/images/22d7a328-5175-11ea-bcfc-b42e9947ef30.jpg" rel="noopener noreferrer"><img src="/images/22d7a328-5175-11ea-bcfc-b42e9947ef30.jpg?size=medium" alt="Bildschirmfoto" title="Bildschirmfoto" loading="lazy"></a></p> <p>Wenn ich das richtig sehe, geht der Request so raus wie er ist, was ich zurückbekommen habe, ist aber nicht der erste und auch nicht der letzte (was vielleicht noch logisch erklärbar wäre), sondern komischerweise der ZWEITE.</p> <blockquote> <p>Wenn der URL samt QUERY_STRING in der Adreßzeile funktioniert, hast Du den ja schonmal richtig geschrieben.</p> </blockquote> <p>Er funktioniert ja nicht so, wie ich will, der Query String für ein einzelnes Bild ist zweifellos richtig, aber ich habe keine Ahnung, auf welche Art weitere Parameter angehängt werden können. Ich habe auch andere Trennzeichen versucht und teilweise darauf nicht mal EIN Bild zurückbekommen, sondern nur eine Fehlermeldung.</p> <blockquote> <p>Wie rufst du diese Datei auf? Doppelclick – und dann steht sowas wie</p> </blockquote> <p>file:///…/index.html in der Adresszeile des Browsers?</p> <p>Ja, die Datei heißt "Klicktabelle.htm" und nach dem Doppelklick darauf steht in der Adreßzeile:</p> <p>file:///home/user/Schreibtisch/Klicktabelle.htm</p> <blockquote> <p>Und eine andere bspw. ABC.htm? (Warum nicht ….html?)</p> </blockquote> <p>Ja, genau. Weil ich gar nicht weiß, ob es einen Unterschied macht. Ich habe gesehen, daß solche Dateien mal *.htm und mal *.html heißen, der Browser "frißt" beide gleichermaßen.</p> <blockquote> <p>Diese willst du dir jetzt sparen und beim Click auf „ABC“ sollen die Bilder https://finviz.com/chart.ashx?t=ABC&p=d, …p=w und …p=m angezeigt werden.</p> </blockquote> <p>Ja, so war's geplant.</p> <blockquote> <p>(An anderer Stelle haben die Bilder bei dir noch die Parameter ty=c, ta=0 und s=l. Wozu sind die gut?)</p> </blockquote> <p>Hatte ich mich nicht mit beschäftigt, ich bekomme mit und ohne diese Parameter das gleiche Ergebnis, also lasse ich sie weg. Sind wohl dazu da, den Chart anders zu formatieren.</p> <blockquote> <p>Oder besser: die 3 Bilder in einem modalen Dialogfenster anzeigen, damit die Übersichtsseite erhalten bleibt?</p> </blockquote> <p>modalen Dialogfenster? Gut, daß Google nicht weit ist! Aber ich habe nicht den kleinsten Schimmer, wie das umzusetzen wäre. Und ja, die "Übersichtsseite", also bei mir die"Klicktabelle" soll - wenn irgendwie möglich - offen bleiben, schon allein, damit ich die Möglichkeit habe, noch einen weiteren Link anzuklicken.</p> <blockquote> <p>Bleibt noch die Frage, wie du die Linkliste pflegen willst. Du schriebst ja, dass da immer wieder welche dazukommen. Erweiterst du dann immer die Datei (index.html)?</p> </blockquote> <p>Es wird besser sein, jeden Monat eine neue anzulegen, denn sonst gibt's irgendwann Probleme mit den alten Daten, die noch in der Tabelle stehen, aber nicht mehr aktuell sind.</p> <blockquote> <p>Oder ist statt die Linkliste zu pflegen ein Eingabefeld sinnvoller, wo du ABC oder STZ usw. eingibst und dann die jeweiligen Bilder angezeigt werden?</p> </blockquote> <p>Nein, ich brauche ja nicht nur die Links zu finviz, sondern auch zu fünf anderen Seiten. Großartig "pflegen" muß ich die Liste nicht, das letzte Kopieren von 591 Datensätzen hat ca. 15 Minuten gedauert, so lange auch nur, weil die auf 30 Seiten verteilt waren. Den Rest macht die Tabellenkalkulation allein - schneller, als ich gucken kann. Dann kopiere ich noch die Ergebnisspalte in eine HTML-Tabelle.</p> <blockquote> <p>ok, du sammelst also Börsencharts. Die Frage, ob diese Form von Deeplinking zulässig ist, werde ich ignorieren, die ist nur für Dich wichtig.</p> </blockquote> <p>Ich sag' mal so: das Deeplinking ist vom Seitenbetreiber wohl so nicht vorgesehen, er verhindert es aber (bis jetzt) auch nicht. Illegal ist das ja wohl nicht, ich stelle die Links nicht öffentlich zur Verfügung, sondern nutze sie nur selbst. Der Seitenbetreiber wird besseres zu tun haben, als die zigtausenden Anfragen, die er sicherlich jeden Tag bekommt, auf sowas zu durchsuchen, ich geh' einfach mal davon aus, daß er nicht auf die Idee kommt, und wenn, ist noch nicht raus, ob ihn das stört, immerhin spart das auch auf seiner Seite Traffic, wenn ich nicht die vollständigen Seiten lade. Werbung läuft da auch nicht. Ihr werdet mich doch wohl nicht verpfeifen?</p> <blockquote> <p>Interessant zu wissen wäre, ob all deine kleinen HTML Dateien finviz-Charts nutzen und sich die abgerufenen Images in all diesen tausenden Dateien letztlich nur in den Aufrufparametern p=d, p=w und p=m unterscheiden.</p> </blockquote> <p>Ich muß zugeben, daß ich bisher keine tausenden Dateien erstellt habe, sondern bis vor Kurzem Charts eines anderen Anbieters genutzt habe. Der läßt sich zwar problemlos mit einem automatisch erzeugten Link aufrufen, bietet aber nicht so schöne Charts wie finviz. Vor allem hätte ich gern die Möglichkeit, die Charts der drei Zeitebenen gleichzeitig zu sehen. Der Unterschied ist ausschließlich im Tickersymbol (STZ, ABC ...), die Parameter sind immer gleich.</p> <blockquote> <p>Warum ist das interessant? Das übergeben eines vollständigen Links per URL-Parameter ist möglich, aber mühsam. Man müsste dafür ein kleines Tool bauen, in Form einer HTML Seite mit JavaScript darin, das die korrekte Codierung übernimmt (was natürlich möglich ist). Das Ausfüllen eines solchen Forms ist beinahe genauso lästig wie das Erstellen der Detail-HTML Seiten. Hier wäre ein Beispiel für eine solche Eingabemaske.</p> </blockquote> <p>Das sieht mir noch "lästiger" aus als das bisherige Vorgehen.</p> <blockquote> <p>vermutlich erwartert er, daß unter</p> <p>chart.ashx?t=STZ&ty=c&ta=0&p=d&s=l</p> <p>bei jedem Request ein anderes Chart kommt weil sich serverseitig die Daten laufend ändern.</p> </blockquote> <p>Ich erwarte das nicht nur, das ist tatsächlich so. Es ist jetzt aber nicht so, daß ich dauernd den Refreshbutton klicke, erstens sind die Charts sowieso nicht realtime, zweitens spielt es für mich keine Rolle, ob und wieviel Minuten sie verzögert angezeigt werden. Ich brauche den ganzen Workflow, um interessante Kandidaten auszufiltern, einige gucke ich EINMAL an und dann für Monate gar nicht mehr, bis sie wieder in der Liste auftauchen. Andere (wenige) werden in den folgenden Wochen noch ein paar mal aufgerufen, max. einmal am Tag.</p> <p>So, jetzt ist mir noch was anderes eingefallen, wie das Problem zu lösen wäre: Ich kann ja jeden der drei Charts einzeln über einen automatisch erzeugten Link aufrufen, wie weiter oben schon gezeigt, auch in einem neuen Fenster. Dabei hat die Anweisung target="_blank" nur für meinen Browser was zu bedeuten, sie wird nicht mitgesendet, obwohl sie in der Adreßzeile steht. Das bringt mich auf folgende Idee: Kann ich dem Browser auf diese Art auch sagen, wie groß das neu zu öffnende Fenster sein soll und vielleicht auch noch, an welcher Stelle es auf dem Monitor erscheinen soll? Dann muß ich zwar drei Links anklicken statt nur einen (kann ich mit leben ), geht aber ganz ohne Programmieraufwand und füht zum (fast) gleichen Ergebnis wie ursprünglich gewünscht. So würde das aussehen:</p> <p><a href="/images/33cdaf9c-5184-11ea-81e5-b42e9947ef30.jpg" rel="noopener noreferrer"><img src="/images/33cdaf9c-5184-11ea-81e5-b42e9947ef30.jpg?size=medium" alt="Bildschirmfoto" title="Bildschirmfoto" loading="lazy"></a></p> <p>Also jeder Chart im eigenen Fenster. (Wenn sich jemand über seltsam ausssehende Fenster wundern sollte - mein Betriebssystem ist ubuntu, aber vielleicht habt ihr das auch längst gemerkt.) Wenn gar nichts anderes geht, müßte ich die Fenster eben jedesmal "zu Fuß" auf die richtige Größe bringen und untereinander anordnen, ich hoffe, das kann auch der Browser (Firefox) machen?</p> <p>Rolf</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765371#m1765371 Rolf r.m@gmx-topmail.de 2020-02-17T20:48:39Z 2020-02-17T20:48:39Z Dynamische Links? <p>Moin,</p> <p>So, Leute, Problem ist gelöst! Google hat geholfen, allerdings wäre ich ohne diese Diskussion nicht drauf gekommen, DANKE an alle Beteiligten!</p> <blockquote> <p>Fensterpositionen festlegen braucht JavaScript (Stichwort window.open-Funktion), aber die Browser mögen das nicht mehr sonderlich, weil die Werbefuzzis damit Schindluder treiben.</p> </blockquote> <p>Genau das hilft mir. Ich habe mir folgende drei Links gebastelt, die zur vollen Zufriedenheit funktionieren:</p> <p><a href="https://finviz.com/chart.ashx?t=STZ&p=d" onclick="window.open(this.href, 'd', 'width=700,height=340,left=0,top=0'); return false">finviz d</a></p> <p><a href="https://finviz.com/chart.ashx?t=STZ&p=w" onclick="window.open(this.href, 'w', 'width=700,height=340,left=0,top=420'); return false"" target="_blank">finviz w</a></p> <p><a href="https://finviz.com/chart.ashx?t=STZ&p=m" onclick="window.open(this.href, 'm', 'width=700,height=340,left=0,top=840'); return false"" target="_blank">finviz m</a></p> <p>Vielleicht guckt Ihr nochmal drauf, ob ein Formfehler drin ist, die arbeiten wie erwartet, nur daß einige Steuerelemente im Browserfenster fehlen, aber das stört nicht. So sieht es aus:</p> <p><a href="/images/e1d8d2f8-51c3-11ea-96f7-b42e9947ef30.jpg" rel="noopener noreferrer"><img src="/images/e1d8d2f8-51c3-11ea-96f7-b42e9947ef30.jpg?size=medium" alt="Bildschirmfoto" title="Bildschirmfoto" loading="lazy"></a></p> <blockquote> <p>Ich hatte übersehen, dass deine Klicktabelle über eine Tabellenkalkulation erzeugt wird. D.h. die Tabellenzellen, die derzeit auf deine Mini-HTMLs verweisen, erzeugst Du durch String-Verkettung in der Tabellenkalkulation?</p> </blockquote> <p>Ja, richtig.</p> <blockquote> <p>Und du hast die 3 Links für die gewünschten Bilder ebenfalls in der Tabellenkalkulation stehen (oder kannst sie erzeugen)?</p> </blockquote> <p>Auch richtig. Alle (inzwischen acht) Links werde ohne weiteres Zutun automatisch erzeugt, sobald ich einen oder mehrere Datensätze reinkopiere.</p> <blockquote> <p>Dann kann man die benötigten Manipulationen, die ich auf meiner Spielseite hatte, auch in der Tabellenkalkulation durchführen.</p> </blockquote> <p>Danke, nicht mehr nötig. Und was danach kommt, scheint wieder kompliziert zu sein.</p> <blockquote> <p>Aber laut TO gibt es mehr als eine Datenquelle.</p> </blockquote> <p>Alle anderen haben nie Probleme gemacht.</p> <blockquote> <p>Ein Bit ist für ihn etwas, was eine Schaumkrone trägt.</p> </blockquote> <p>NEIN! Ich bin kein Biertrinker. Und wenn ich doch mal eins nehme, dann ohne Schaum.</p> <blockquote> <p>Brauchts denn dann eigentlich die extra HTML-Seite noch, kann das nicht direkt aus Excel heraus aufgerufen werden?</p> </blockquote> <p>Excel hab' ich nicht, das gibt's ja nur unter Windows. Ich hab' LibreOffice calc. Auch da kann man Hyperlinks einbauen, ist aber ziemlich umständlich und nicht zu automatisieren. Für einen einzelnen Link hab' ich's schon mal gemacht, dauert mehrere Minuten für EINEN Link.</p> <p>Rolf</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765246#m1765246 Rolf B 2020-02-15T13:59:23Z 2020-02-15T13:59:23Z Dynamische Links? <p>Hallo klawischnigg,</p> <p>ich denke, genau das möchte er nicht. Das wäre die "triviale" Lösung: Eine HTML Datei pro Fototripel.</p> <p>Wenn man das nicht will, braucht man aktive Elemente. Entweder Javascript oder serverseitiges Script (z.B. PHP).</p> <p>Hat beides Vor- und Nachteile. Lieber Namensvetter - welche Kenntnisse hast Du und wie ist das technische Umfeld, in dem sich die Lösung bewegen soll?</p> <ul> <li>Welche Sprachen beherrschst Du? (Javascript, PHP, andere Serversprachen)</li> <li>Ist hier überhaupt ein Server im Spiel</li> <li>Kannst Du dort PHP oder andere Sprachen laufen lassen?</li> </ul> <p>MUSS sich ein eigenes Fenster öffnen? Eine Alternative kann sein, dass der Link (dann besser ein Button) die Bilder auf der aktuellen Seite einblendet. Das geht per JavaScript oder auch per serverseitigem Script.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765249#m1765249 Der Martin 2020-02-15T14:19:22Z 2020-02-15T14:19:22Z Dynamische Links? <p>Hallo,</p> <blockquote> <p>ich denke, genau das möchte er nicht. Das wäre die "triviale" Lösung: Eine HTML Datei pro Fototripel.</p> </blockquote> <p>aber wie sonst, wenn er (so wie ich es verstehe) Popups mit je drei Bildern möchte?</p> <blockquote> <p>MUSS sich ein eigenes Fenster öffnen?</p> </blockquote> <p>Gute Frage. Normalerweise möchte man das vermeiden. Wenn es aber eine Anwendung sein soll, die der OP nur selbst nutzt, mag das eine Option sein.</p> <p>Ciao,<br>  Martin</p> <div class="signature">-- <br> Ich stamme aus Ironien, einem Land am sarkastischen Ozean. </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765254#m1765254 klawischnigg 2020-02-15T14:34:18Z 2020-02-15T14:34:18Z Dynamische Links? <p>Hi there,</p> <blockquote> <p>ich denke, genau das möchte er nicht. Das wäre die "triviale" Lösung: Eine HTML Datei pro Fototripel.</p> </blockquote> <p>Hat sich für mich anders angehört, aber egal, ich hab' ja eingeräumt, daß ich ihn möglicherweise mißverstanden habe...</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765257#m1765257 Rolf B 2020-02-15T15:38:54Z 2020-02-15T15:38:54Z Dynamische Links? <p>Hallo Gunnar,</p> <blockquote> <p>Link Targets and 3.2.5</p> </blockquote> <p>ich habe mehrfach angesetzt mit dem Versuch, diesem Text zu folgen. Vergeblich. Der Autor ist so tief in seinem Jargon drin, dass er mich nach zwei Sätzen abhängt. Offenbar gehöre ich nicht zu seiner Zielgruppe. Oder er schwafelt und versteckt das hinter einem Orkan aus Buzzwords und Abkürzungen.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765278#m1765278 jensp 2020-02-16T07:10:01Z 2020-02-16T07:10:01Z Dynamische Links? <p>Hallo Rolf,</p> <p>wo genau hängt der Autor von dem Text dich ab? Sprich welche Abkürzungen, Begriffe, Formulierungen etc. sind für dich - und möglicherweise andere Leute - unverständlich sind?</p> <p>Viele Grüße</p> <p>Jens</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765342#m1765342 pl https://rolfrost.de/tapi 2020-02-17T10:24:37Z 2020-02-17T10:27:11Z Dynamische Links? <p><a href="/users/6547" class="mention registered-user" rel="noopener noreferrer">@Rolf B</a></p> <p>es ist hier wirklich schwierig ein Problem nachzustellen wenn man gar nicht weiß was das Problem ist.</p> <p>Links erzeugen kann er dank seines Kalkulationsprogramm's. Grafiken downloaden kann er auch. Umgang mit dem QUERY_STRING ist für ihn auch kein Problem.</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765275#m1765275 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2020-02-16T01:15:05Z 2020-02-16T10:23:25Z Dynamische Links? <p>@@Rolf</p> <blockquote> <p>Ich beherrsche KEINE Programmiersprache, auch in HTML habe ich nur rudimentäre Kenntnisse.</p> </blockquote> <p>Angesichts dessen glaube ich das nicht:</p> <blockquote> <p>Es ist KEIN Server im Spiel.</p> </blockquote> <p>Wie rufst du denn die HTML-Dateien für jede einzelne Bildergruppe auf, wenn nicht über einen Server? Übers lokale Dateisystem?</p> <blockquote> <p>Den Vorschlag von Gunnar mit dem serverseitigen Script hab' ich nicht verstanden, aber wahrscheinlich macht das nichts, weil es mangels Server ohnehin nicht umsetzbar ist.</p> </blockquote> <p>Mangels Server oder mangels Kenntnissen?</p> <p>Du kannst das aber auch per clientseitigem Script machen:</p> <pre><code class="block language-js"><span class="token keyword">const</span> imagePrefix <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">URL</span><span class="token punctuation">(</span>document<span class="token punctuation">.</span>location<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>searchParams<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">'image'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>liefert den GET-Parameter <code>image</code> aus dem URL der aktuellen Seite.</p> <pre><code class="block language-js"><span class="token keyword">const</span> imagePrefixEncoded <span class="token operator">=</span> <span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>imagePrefix<span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>behandelt ihn zum Einfügen in einen URL.</p> <pre><code class="block language-js"><span class="token keyword">const</span> fragment <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DocumentFragment</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> i <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> i <span class="token operator"><=</span> <span class="token number">3</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">const</span> imageElement <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createElement</span><span class="token punctuation">(</span><span class="token string">'img'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> imageElement<span class="token punctuation">.</span>src <span class="token operator">=</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">https://example.net/</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>imagePrefixEncoded<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">_</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>index<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">.jpg</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span> imageElement<span class="token punctuation">.</span>alt <span class="token operator">=</span> <span class="token string">''</span><span class="token punctuation">;</span> fragment<span class="token punctuation">.</span><span class="token function">appendChild</span><span class="token punctuation">(</span>imageElement<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>erstellt in einer Schleife die drei <code>img</code>-Elemente und weist ihnen <code>src</code>- und <code>alt</code>-Attribute zu. Diese werden in einem Fragment gesammelt, welches du am Ende nur noch an die gewünschte Stelle im DOM hängen musst, bspw:</p> <pre><code class="block language-js">document<span class="token punctuation">.</span>body<span class="token punctuation">.</span><span class="token function">appendChild</span><span class="token punctuation">(</span>fragment<span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>LLAP </p> <div class="signature">-- <br> Wenn der Faschismus wiederkommt, wird er nicht sagen: Hallo, ich bin der Faschismus! Sondern er wird sagen: Ich nehme die Wahl an. </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765289#m1765289 pl https://rolfrost.de/tapi 2020-02-16T12:53:06Z 2020-02-16T12:58:08Z Dynamische Links? <blockquote> <p>Da kann ich aber nicht weiter drauf zugreifen, einfach nur die Bilder abrufen.</p> </blockquote> <p>Also haben die Bilder ja Dir bekannte URLs sonst könntest die ja nicht abrufen. So dürfte es kein Problem sein, diese Dir bekannten URLs in eine Datei zu schreiben.</p> <p>Was soll dabei automatisiert werden, das Schreiben dieser Bild'URLs in eine Datei oder das draufklicken aufn URL?</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765282#m1765282 Rolf B 2020-02-16T09:43:02Z 2020-02-16T09:43:02Z Dynamische Links? <p>Hallo Gunnar,</p> <p>Du nimmst mir einen Teil meiner Fragen von den Fingern.</p> <blockquote> <p>Wie rufst du denn die HTML-Dateien für jede einzelne Bildergruppe auf, wenn nicht über einen Server? Übers lokale Dateisystem</p> </blockquote> <p>Mich als alten AB-Problemsucher würde mal der ganze Workflow interessieren. Wo befindet sich der Link? Wer erstellt den Link und wie? Ist das Aufrufen einer HTML Seite mit Bildnamen als Parameter der einzig sinnvolle und gangbare Weg?</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765310#m1765310 klawischnigg 2020-02-16T21:10:32Z 2020-02-16T21:10:32Z Dynamische Links? <p>Hi there,</p> <blockquote> <p>Es gelingt mir nur nicht, die so zu verknüpfen, daß alle drei Bilder abgerufen werden, wie oben im Bild gezeigt. Ich schreibe z.B. in die Adreßzeile:</p> <p>https://finviz.com/chart.ashx?t=STZ&amp;p=d&t=STZ&amp&p=w&t=STZ&amp;p=m</p> <p>und bekomme NUR EINES der drei Bilder angezeigt. Mache ich was falsch oder geht das tatsächlich nicht?</p> </blockquote> <p>Also, erstens machst Du falsch, daß Du t=STZ mehrmals angibst. Das wäre aber nicht tragisch, es ist nur überflüssig. Richtig falsch ist aber, daß die Variable p, die Du übergibst, nicht verschiedene Werte haben kann, und so interpretiert das Skript, das sich in der Datei chart.ashx befindet immer nur den letzten Wert, also in dem Fall p=m. Richtig wäre also</p> <p>https://finviz.com/chart.ashx?t=STZ&amp;p1=d&amp;p2=w&amp;p3=m</p> <p>ABER - (jetzt kommt leider das große "aber") vermutlich weiß das Skript in der Datei chart.ashx nichts davon, daß es den Querystring nach Parametern abfragen soll, die p1, p2 und p3 heissen. Das wäre zwar leicht anzupassen, aber dazu müsstest Du erstens Zugang zu diesem Skript haben und zweitens jemanden, der sich mit ASP.net soweit auskennt (das ist absolut keine Hexerei, aber Du hast ja selbst eingeräumt, daß Du Dich auf dem Gebiet nicht auskennst). So wie ich das sehe, verwendest Du da ein fertiges Skript, daß eben ein einziges Bild als Parameter p erwartet und das kannst Du nicht ändern, indem Du einfach mehrere oder anderer Parameter mitschickst.</p> <p>Es tut mir leid, daß ich Dir da nicht helfen kann, aber wenigstens wissen wir jetzt, wo Dein Problem liegt...</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765311#m1765311 Der Martin 2020-02-16T21:10:57Z 2020-02-16T21:40:08Z Dynamische Links? <p>Hallo Rolf,</p> <blockquote> <p>ich hab' mal weitergesucht. Das mit dem "clientseitigen Script" war schon wieder "zu hoch" für mich, ...</p> </blockquote> <p>okay, das lässt darauf schließen, dass wir deine Kenntnisse tatsächlich auf Laien-Niveau einschätzen müssen. Nein, das ist kein Vorwurf, keine Geringschätzung - du hast dafür ganz bestimmt andere Stärken. Kann ja nicht jeder ein IT-Genie sein.</p> <blockquote> <p>aber die Suche danach hat mit auf Umwegen auf den Begriff "Query String" gebracht, und das ist genau das, was ich suche. Ich kriege ihn aber nicht richtig zusammengebastelt, vielleicht hat einer von Euch die zündende Idee?</p> </blockquote> <p>Wenn ich deine nachfolgenden Ausführungen zusammenfassen darf: Nein, was du dir vorstellst, geht so nicht.</p> <pre><code class="block language-html"> > <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://finviz.com/chart.ashx?t=STZ&ty=c&ta=0&p=d&s=l<span class="token punctuation">"</span></span> <span class="token attr-name">border</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> > <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://finviz.com/chart.ashx?t=STZ&ty=c&ta=0&p=w&s=l<span class="token punctuation">"</span></span> <span class="token attr-name">border</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> > <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>IMG</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://finviz.com/chart.ashx?t=STZ&ty=c&ta=0&p=m&s=l<span class="token punctuation">"</span></span> <span class="token attr-name">border</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p>Eins vorweg: Das ist grausames HTML. Die vorgeschriebenen alt-Attribute für die img-Elemente fehlen, doppelt auftretende br-Elemente sind ein klares Indiz für Verständnisfehler, und Tag-Namen schreibt man üblicherweise in Kleinbuchstaben.</p> <blockquote> <p>Jetzt hätte ich gern, daß ich nicht erst jeden Monat hunderte HTML-Dateien und Links erstellen muß, sondern dieses Ergebnis direkt mit einem Link abfragen kann, ohne den Umweg über eine lokale Datei.</p> </blockquote> <p>Das wird nicht gehen.</p> <blockquote> <p>Diese "Query Strings" funktionieren - jeder für sich:</p> <p>https://finviz.com/chart.ashx?t=STZ&p=d</p> <p>https://finviz.com/chart.ashx?t=STZ&p=w</p> <p>https://finviz.com/chart.ashx?t=STZ&p=m</p> </blockquote> <p>Ja, so weit kann ich folgen.</p> <blockquote> <p>Es gelingt mir nur nicht, die so zu verknüpfen, daß alle drei Bilder abgerufen werden, wie oben im Bild gezeigt. Ich schreibe z.B. in die Adreßzeile:</p> <p>https://finviz.com/chart.ashx?t=STZ&amp;p=d&t=STZ&amp&p=w&t=STZ&amp;p=m</p> <p>und bekomme NUR EINES der drei Bilder angezeigt.</p> </blockquote> <p>Ja. Das Script, das du auf diese Weise aufrufst, kann nur <strong>ein</strong> Bild liefern. Es wird daher von mehreren gleichnamigen Parametern nur <strong>einen</strong> annehmen, vermutlich den letzten.</p> <blockquote> <p>Mache ich was falsch oder geht das tatsächlich nicht?</p> </blockquote> <p>Bei HTTP gilt die Grundregel: <strong>Ein</strong> Request, <strong>eine</strong> Response. Du willst drei Responses, also musst du auch drei Requests senden. Wie du das zum Beispiel mit Javascript automatisieren kannst, wurde dir schon gezeigt. Wenn du es ausprobieren willst und dabei noch etwas Hilfe brauchst, bist du hier herzlich willkommen. Es ist wirklich kein Hexenwerk.<br> Nur so wie du es gern hättest, also drei Bilder mit einer einzigen Anfrage an den Server, geht es eben nicht.</p> <p>Ciao,<br>  Martin</p> <p>PS: Wie alt bist du, wenn ich fragen darf? Wörter wie <em>dass</em>, <em>muss</em> oder <em>Adresszeile</em> schreibt man schon seit rund 25 Jahren mit Doppel-s. Das war eine der wenigen Regeln der Rechtschreibdeform, die ich sofort begeistert angenommen habe.</p> <div class="signature">-- <br> Ich stamme aus Ironien, einem Land am sarkastischen Ozean. </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765319#m1765319 pl https://rolfrost.de/tapi 2020-02-17T08:21:45Z 2020-02-17T08:21:45Z Dynamische Links? <p>Moin,</p> <blockquote> <p>Es gelingt mir nur nicht, die so zu verknüpfen, daß alle drei Bilder abgerufen werden, wie oben im Bild gezeigt. Ich schreibe z.B. in die Adreßzeile:</p> <p>https://finviz.com/chart.ashx?t=STZ&amp;p=d&t=STZ&amp&p=w&t=STZ&amp;p=m</p> <p>und bekomme NUR EINES der drei Bilder angezeigt. Mache ich was falsch oder geht das tatsächlich nicht?</p> </blockquote> <p>Wenn der URL samt QUERY_STRING in der Adreßzeile funktioniert, hast Du den ja schonmal richtig geschrieben. Genauso muß der URL bzw. alle weiteren URL's im src= Attribut des <img>-ELments notiert werden.</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765321#m1765321 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2020-02-17T08:42:34Z 2020-02-17T08:42:34Z Dynamische Links? <p>@@Rolf</p> <blockquote> <p>Wie bereits erwähnt, habe ich eine HTML-Datei mit vielen Links</p> </blockquote> <p>Die heißt bspw. index.html.</p> <p>Wie rufst du diese Datei auf? Doppelclick – und dann steht sowas wie<br> <code>file:///…/index.html</code> in der Adresszeile des Browsers?</p> <blockquote> <p>In einer Spalte stehen bis jetzt Links, die lokal auf meinem Rechner gespeicherte HTML-Dateien aufrufen. Eine davon heißt z.B. "STZ.htm".</p> </blockquote> <p>Und eine andere bspw. ABC.htm? (Warum nicht ….htm<strong>l</strong>?)</p> <p>Diese willst du dir jetzt sparen und beim Click auf „ABC“ sollen die Bilder <code>https://finviz.com/chart.ashx?t=ABC&p=d</code>, <code>…p=w</code> und <code>…p=m</code> angezeigt werden.</p> <p>(An anderer Stelle haben die Bilder bei dir noch die Parameter <code>ty=c</code>, <code>ta=0</code> und <code>s=l</code>. Wozu sind die gut?)</p> <p>Das lässt sich mit JavaScript umsetzen: Die Standardaktion der Links „ABC“, „STZ“, … (Verweis auf andere Seiten) abfangen und stattdessen den Seiteninhalt gegen die 3 Bilder austauschen. Oder besser: die 3 Bilder in einem modalen Dialogfenster anzeigen, damit die Übersichtsseite erhalten bleibt?</p> <p>Bleibt noch die Frage, wie du die Linkliste pflegen willst. Du schriebst ja, dass da immer wieder welche dazukommen. Erweiterst du dann immer die Datei (index.html)?</p> <p>Oder ist statt die Linkliste zu pflegen ein Eingabefeld sinnvoller, wo du <code>ABC</code> oder <code>STZ</code> usw. eingibst und dann die jeweiligen Bilder angezeigt werden?</p> <p>LLAP </p> <div class="signature">-- <br> Wenn der Faschismus wiederkommt, wird er nicht sagen: Hallo, ich bin der Faschismus! Sondern er wird sagen: Ich nehme die Wahl an. </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765324#m1765324 Rolf B 2020-02-17T08:57:40Z 2020-02-17T09:11:50Z Dynamische Links? <p>Hallo Rolf,</p> <p>ok, du sammelst also Börsencharts. Die Frage, ob diese Form von Deeplinking zulässig ist, werde ich ignorieren, die ist nur für Dich wichtig.</p> <p>Interessant zu wissen wäre, ob all deine kleinen HTML Dateien finviz-Charts nutzen und sich die abgerufenen Images in all diesen tausenden Dateien letztlich nur in den Aufrufparametern p=d, p=w und p=m unterscheiden.</p> <p>Oder - wenn es nicht nur finviz ist - ob es dann zumindest eine gewisse Gruppierung gibt, also zum Beispiel eine gewisse, überschaubare Grundmenge von Anbietern, deren Charts du darstellst.</p> <p>Update: Ich sehe gerade dass finviz lange nicht gleich finviz ist - außer der charts.ashx gibt's auch noch einige andere.</p> <p>Warum ist das interessant? Das übergeben eines vollständigen Links per URL-Parameter ist möglich, aber mühsam. Man müsste dafür ein kleines Tool bauen, in Form einer HTML Seite mit JavaScript darin, das die korrekte Codierung übernimmt (was natürlich möglich ist). Das Ausfüllen eines solchen Forms ist beinahe genauso lästig wie das Erstellen der Detail-HTML Seiten. <a href="https://jsfiddle.net/Rolf_b/w36qunxL/1/" rel="noopener noreferrer">Hier</a> wäre ein Beispiel für eine solche Eingabemaske.</p> <p>Wenn Du dagegen nur wenige Grundtypen hast, könnte man die Eingaben für die Link-Generierung auf die Unterschiede beschränken, das ist wesentlich übersichtlicher und schneller erstellt. Man könnte die Generierseite dann so schreiben, dass man den Quellentyp über ein Dropdown oder Radiobuttons auswählt (bzw. man braucht gar nichts auswählen wenn es immer finviz ist). Den Rest erledigt das Script. Der Link selbst sollte immer die vollen URLs enthalten, dadurch bleibt die Anzeigeseite unabhängig von allem.</p> <p>Allerdings bist Du dann auf einen Programmierer angewiesen, wenn neue Typen hinzukommen. Wenn Du das nicht sein willst, musst Du ein gewisses Verständnis für das Script entwickeln, oder die URLs immer vollständig codieren.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765313#m1765313 Rolf r.m@gmx-topmail.de 2020-02-16T21:51:25Z 2020-02-16T21:51:25Z Dynamische Links? <p>Moin</p> <blockquote> <p>okay, das lässt darauf schließen, dass wir deine Kenntnisse tatsächlich auf Laien-Niveau einschätzen müssen. Nein, das ist kein Vorwurf, keine Geringschätzung - du hast dafür ganz bestimmt andere Stärken.</p> </blockquote> <p>Ja, ich kann z.B. gut im Internet recherchieren und die eine Seite finden, wo ich wahrscheinlich eine qualifizierte Antwort bekomme </p> <blockquote> <p>Eins vorweg: Das ist grausames HTML.</p> </blockquote> <p>Kann sein, aber ich bin da eben kein Experte - und es funktioniert ja so, wie ich es brauche, ist nur für den Eigenbedarf.</p> <blockquote> <p>Das wird nicht gehen.</p> </blockquote> <p>Schade, da hab' ich die Möglichkeiten wohl überschätzt.</p> <blockquote> <p>Wie du das zum Beispiel mit Javascript automatisieren kannst, wurde dir schon gezeigt. Wenn du es ausprobieren willst und dabei noch etwas Hilfe brauchst, bist du hier herzlich willkommen. Es ist wirklich kein Hexenwerk.</p> </blockquote> <p>Was der Gunnar oben gezeigt hat, kann ich leider nicht nachvollziehen. Ich wüßte nicht mal, wo dieser Code hingehört. Meinst Du, es gibt eine Möglichkeit mit Javascript, die einfacher ist als mein bisheriger Workflow?</p> <blockquote> <p>PS: Wie alt bist du, wenn ich fragen darf? Wörter wie <em>dass</em>, <em>muss</em> oder <em>Adresszeile</em> schreibt man schon seit rund 25 Jahren mit Doppel-s.</p> </blockquote> <p>Ich bin 63 und schreibe immer noch so, wie ich es in den 1960er Jahren gelernt habe.</p> <blockquote> <p>Das war eine der wenigen Regeln der Rechtschreibdeform, die ich sofort begeistert angenommen habe.</p> </blockquote> <p>Ich war von keiner der neuen Regeln begeistert und habe dann auch keine angenommen.</p> <p>Rolf</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765315#m1765315 pl https://rolfrost.de/tapi 2020-02-17T07:15:48Z 2020-02-17T07:18:30Z Dynamische Links? <blockquote> <p>Bei HTTP gilt die Grundregel: Ein Request, eine Response. Du willst drei Responses, also musst du auch drei Requests senden.</p> </blockquote> <p>Genau das macht der doch der Browser, 3 <img>-Elemente heißt, daß 3 Requests rausgehen. Das ist in der Console (F12) zu sehen.</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765316#m1765316 pl https://rolfrost.de/tapi 2020-02-17T07:20:05Z 2020-02-17T07:20:05Z Dynamische Links? <p>hi</p> <p>drück mal F12 (Firefox) und guck mal im Netzwerktab ob die 3 Requests auch wirklich rausgehen.</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765318#m1765318 pl https://rolfrost.de/tapi 2020-02-17T08:10:39Z 2020-02-17T08:10:39Z Entwicklerwerkzeug Console <p>hi</p> <blockquote> <p>drück mal F12 (Firefox) und guck mal im Netzwerktab ob die 3 Requests auch wirklich rausgehen.</p> </blockquote> <p>Ergänzung: Im Netzwerktab ist auch zu sehen, welchen HTTP-Status eine jede Response hat. Einen HTTP'Status gibt es auf jeden Fall dazu ist der Webserver verpflichtet, auch dann wenn er kein Image liefert.</p> <p>Aufgehts!</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765323#m1765323 pl https://rolfrost.de/tapi 2020-02-17T08:53:39Z 2020-02-17T08:53:39Z Dynamische Links? <p><a href="/users/20" class="mention registered-user" rel="noopener noreferrer">@Gunnar Bittersmann</a></p> <blockquote> <p>(An anderer Stelle haben die Bilder bei dir noch die Parameter <code>ty=c</code>, <code>ta=0</code> und <code>s=l</code>. Wozu sind die gut?)</p> </blockquote> <p>Parameter, das ist ein Begriff aus der Welt des HTTP. Ein HTTP'Request kann Parameter enthalten. Und so wie hier beschrieben, wird infolge eines oder mehrerer Parameter bestimmt, welches Bild der Server ausliefern soll.</p> <p>Also keine lokale Sache sondern Client'Server.</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765331#m1765331 Rolf B 2020-02-17T09:29:51Z 2020-02-17T09:29:51Z Dynamische Links? <p>Hallo Gunnar,</p> <p>ty ist der Typ-Parameter. Sieht man auf der finwiz Seite, c ist Candlestick. Mit ta=1 statt ta=0 schaltet man eine Trendanalyse zu. Auf der finviz Seite bekommt man ty=c&ta=1 für Typ=advanced und ty=c&ta=0 für Typ=candle</p> <p>Was der s-Parameter macht, finde ich nicht. Die HTML Seite hat den nicht, das ist wohl was internes.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765325#m1765325 Tabellenkalk 2020-02-17T08:59:38Z 2020-02-17T08:59:38Z Dynamische Links? <p>Hallo,</p> <blockquote> <p>Parameter, das ist ein Begriff aus der Welt des HTTP.</p> </blockquote> <p>und aus der Welt der Mathematik, Physik, Technik, Analysis, Geometrie, Statistik, Entwurfstechnik, Programmierung, Chemie, Musik, Linguistik, …</p> <p>Hat schon jemand Bingo?</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765327#m1765327 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2020-02-17T09:09:53Z 2020-02-17T09:09:53Z Dynamische Links? <p>@@pl</p> <blockquote> <p>Parameter, das ist ein Begriff aus der Welt des HTTP.</p> </blockquote> <p>Du musst hier nicht den Begriff Parameter erklären.</p> <p>Es ging hier darum, dass im OP einmal URIs mit Parametern <code>ty=c</code>, <code>ta=0</code> und <code>s=l</code> angegeben sind und andermal URIs ohne diese Parameter. (Die Bilder kommen auch ohne.)</p> <p>Du hast aber nicht nur dieses Detail nicht verstanden, sondern auch das eigentliche Problem nicht.</p> <p>LLAP </p> <div class="signature">-- <br> Wenn der Faschismus wiederkommt, wird er nicht sagen: Hallo, ich bin der Faschismus! Sondern er wird sagen: Ich nehme die Wahl an. </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765326#m1765326 pl https://rolfrost.de/tapi 2020-02-17T09:07:45Z 2020-02-17T09:07:45Z Dynamische Links? <p><a href="/users/6547" class="mention registered-user" rel="noopener noreferrer">@Rolf B</a></p> <p>vermutlich erwartert er, daß unter</p> <p><code>chart.ashx?t=STZ&ty=c&ta=0&p=d&s=l</code></p> <p>bei jedem Request ein anderes Chart kommt weil sich serverseitig die Daten laufend ändern.</p> <p>Also drei <img>-Tags mit demselben URL auch drei verschiedene Charts liefern weil die Daten so dynamisch sind.</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765329#m1765329 Rolf B 2020-02-17T09:16:16Z 2020-02-17T09:17:22Z Dynamische Links? <p>Hallo pl,</p> <p>hiermit verleihe ich Dir den Titel Captain Obvious des Tages.<br> Würdest du jetzt bitte aufhören, den Thread zu verrauschen?</p> <p>Herzlichen Glückwunsch!<br> <em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765328#m1765328 pl https://rolfrost.de/tapi 2020-02-17T09:13:22Z 2020-02-17T09:13:22Z Dynamische Links? <p><a href="/users/20" class="mention registered-user" rel="noopener noreferrer">@Gunnar Bittersmann</a></p> <blockquote> <p>Es ging hier darum, dass im OP einmal URIs mit Parametern <code>ty=c</code>, <code>ta=0</code> und <code>s=l</code> angegeben sind und andermal URIs ohne diese Parameter. (Die Bilder kommen auch ohne.)</p> </blockquote> <p>Nein, Ohne Parameter kommt das da</p> <pre><code class="block">HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 Set-Cookie: preventRedirectLoop=false; domain=.finviz.com; expires=Sun, 16-Feb-2020 09:11:22 GMT; path=/ X-Powered-By: ASP.NET Date: Mon, 17 Feb 2020 09:11:22 GMT Connection: close Content-Length: 305 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>FINVIZ - Error</title> </head> <body> <img src="/gfx/top_gfx_logo_2.gif" width="222" height="21" alt="" hspace="0" vspace="0" border="0"> <h2>error: invalid query</h2> <a href="/">return to FINVIZ.com</a> </body> </html> Prozess erfolgreich beendet. </code></pre> <p>Also kein Bild.</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765330#m1765330 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2020-02-17T09:19:37Z 2020-02-17T09:19:37Z Dynamische Links? <p>@@pl</p> <blockquote> <blockquote> <p>Es ging hier darum, dass im OP einmal URIs mit Parametern <code>ty=c</code>, <code>ta=0</code> und <code>s=l</code> angegeben sind und andermal URIs ohne diese Parameter. (Die Bilder kommen auch ohne.)</p> </blockquote> <p>Nein, Ohne Parameter kommt das da</p> </blockquote> <p>Ich sagte nicht „ohne Parameter“, sondern „ohne <em>diese</em> Parameter“ – ohne <code>ty=c</code>, <code>ta=0</code> und <code>s=l</code>.</p> <p>Aber natürlich mit Parametern <code>t</code> (bspw. <code>t=ABC</code>) und <code>p</code> (bspw. <code>p=d</code>).</p> <p>LLAP </p> <div class="signature">-- <br> Wenn der Faschismus wiederkommt, wird er nicht sagen: Hallo, ich bin der Faschismus! Sondern er wird sagen: Ich nehme die Wahl an. </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765357#m1765357 Rolf B 2020-02-17T14:48:43Z 2020-02-17T14:48:43Z Dynamische Links? <p>Hallo Rolf,</p> <p>Fensterpositionen festlegen braucht JavaScript (Stichwort window.open-Funktion), aber die Browser mögen das nicht mehr sonderlich, weil die Werbefuzzis damit Schindluder treiben.</p> <p>Was Du scheinbar bisher versucht hast, war, vom der Bildquelle die drei Bilder auf einmal zu erhalten. DAS wird nicht funktionieren. Dafür brauchst Du eine Adapterseite, nach dem von Gunnar vorgeschlagenen Prinzip.</p> <p>Ich hatte übersehen, dass deine Klicktabelle über eine Tabellenkalkulation erzeugt wird. D.h. die Tabellenzellen, die derzeit auf deine Mini-HTMLs verweisen, erzeugst Du durch String-Verkettung in der Tabellenkalkulation?</p> <p>Und du hast die 3 Links für die gewünschten Bilder ebenfalls in der Tabellenkalkulation stehen (oder kannst sie erzeugen)? Dann kann man die benötigten Manipulationen, die ich auf meiner Spielseite hatte, auch in der Tabellenkalkulation durchführen. Wenn Du Excel verwendest, benötigst Du nur die Funktion URLCODIEREN.</p> <p>Wenn das Anzeige-HTML in <code>file:///c:/temp/show.html</code> steht, müsste man es mit der URL <code>file:///c:/temp/show.html?target1=...&target2=...&target3=...</code> aufrufen. Für das ... setzt Du die Bild-URL ein, jeweils mit URLCODIEREN maskiert. Diese URL kannst Du in Excel erzeugen und im generierten HTML in das href eines Links eintragen.</p> <p>Was dann zum nächsten potenziellen Drama führt: Script in lokal geladenen HTML Dateien kann ebenfalls zu entsetzten Rückfragen des Browsers führen (Internet Explorer, der vertraut einem Netzwerkshare aber nicht der lokalen Festplatte). Chrome und Firefox meckern nicht, bei Edge weiß ich es nicht.</p> <p>Die show.html liest die 3 Parameter aus und trägt sie per JavaScript in die src Attribute der 3 Image-Elemente ein. Dafür müssen wir nur Gunnars dargestelltes Konzept für Dich nutzbar machen, das kriegen wir aber hin. Diese Datei musst Du dann nur einmal speichern und mit passenden Parametern aufrufen.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765359#m1765359 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2020-02-17T14:57:13Z 2020-02-17T14:57:13Z Dynamische Links? <p>@@Rolf B</p> <blockquote> <p><code>file:///c:/temp/show.html?target1=...&target2=...&target3=...</code></p> </blockquote> <p>Wenn sich <code>target1</code>, <code>target2</code> und <code>target3</code> lediglich im <code>p</code>-Teil unterscheiden (<code>p=d</code> vs. <code>p=w</code> vs. <code>p=m</code>) und man sowieso JavaScript braucht, warum sollte man das tun?</p> <p>Das Einzige, was man an show.html übergeben muss, ist der <code>t</code>-Parameter. Optional könnte man noch ggfs. <code>ty</code>, <code>ta</code> und <code>s</code> angeben.</p> <p>LLAP </p> <div class="signature">-- <br> Wenn der Faschismus wiederkommt, wird er nicht sagen: Hallo, ich bin der Faschismus! Sondern er wird sagen: Ich nehme die Wahl an. </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765360#m1765360 pl https://rolfrost.de/tapi 2020-02-17T15:04:24Z 2020-02-17T15:09:21Z Dynamische Links? <p>unter uns <a href="/users/6547" class="mention registered-user" rel="noopener noreferrer">@Rolf B</a></p> <p>der Server macht ein <code>Connection: Close</code>. Wenn er die Connection offen halten würde <code>Connectio: Keep-Alive</code> also, könnte man tatsächlich drei Requests hintereinander in das Socket schieben und bekommt dadurch auch 3 Images geliefert.</p> <p>Das müsste aber auch über einen Proxy funktionieren wenn der Proxy die Connection offenhält. Mit dem Proxy meines Providers funktioniert das so.</p> <p>Script folgt!</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765361#m1765361 Tabellenkalk 2020-02-17T15:16:58Z 2020-02-17T15:16:58Z Dynamische Links? <p>Hallo,</p> <blockquote> <p>Wenn Du Excel verwendest, benötigst Du nur die Funktion URLCODIEREN.</p> <p>Wenn das Anzeige-HTML in <code>file:///c:/temp/show.html</code> steht, müsste man es mit der URL <code>file:///c:/temp/show.html?target1=...&target2=...&target3=...</code> aufrufen. Für das ... setzt Du die Bild-URL ein, jeweils mit URLCODIEREN maskiert. Diese URL kannst Du in Excel erzeugen und im generierten HTML in das href eines Links eintragen.</p> </blockquote> <p>Brauchts denn dann eigentlich die extra HTML-Seite noch, kann das nicht direkt aus Excel heraus aufgerufen werden?</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765365#m1765365 Rolf B 2020-02-17T16:26:21Z 2020-02-17T16:26:21Z Dynamische Links? <p>Hallo Gunnar,</p> <blockquote> <p>warum sollte man das tun?</p> </blockquote> <p>Du und ich würden das tun. Aber laut TO gibt es mehr als eine Datenquelle. Die finviz-URLs sind nur ein Beispiel; das, was wir hier erfahren haben, ist keine vollständige Requirementliste und sollte wohl auch nie eine sein.</p> <p>Eine Anzeige-HTML die spezifisch für finviz ist würde auch bedeuten, dass man für andere Quellen andere Anzeige-HTMLs braucht, in denen ggf. Script anzupassen ist.</p> <p>Dann empfehle ich doch lieber Montessori: Hilf mir, es selbst zu tun. Der TO sucht keinen JavaScript-Kurzs, und im Rahmen seiner Möglichkeiten ist die Lösung mit einer parametrierbaren HTML Datei für die Detailanzeige wohl wirklich am besten. Die kann man ihm als Blackbox geben (mit möglichst simplem Inhalt), und mit der Tabellenkalkulation kann er offenbar umgehen. Also muss möglichst alles dort erfolgen, um eine Hilfe zu sein. Und VBA scheidet aus, der TO kennt nach eigenem Bekunden KEINE Programmiersprache.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765362#m1765362 pl https://rolfrost.de/tapi 2020-02-17T15:17:37Z 2020-02-17T15:17:37Z Dynamische Links? <blockquote> <p>unter uns <a href="/users/6547" class="mention registered-user" rel="noopener noreferrer">@Rolf B</a></p> <p>der Server macht ein <code>Connection: Close</code>. Wenn er die Connection offen halten würde <code>Connectio: Keep-Alive</code> also, könnte man tatsächlich drei Requests hintereinander in das Socket schieben und bekommt dadurch auch 3 Images geliefert.</p> <p>Das müsste aber auch über einen Proxy funktionieren wenn der Proxy die Connection offenhält. Mit dem Proxy meines Providers funktioniert das so.</p> <p>Script folgt!</p> </blockquote> <p>Hier isses, as liefert auch 3 Bilder</p> <pre><code class="block language-perl"><span class="token keyword">use</span> IO<span class="token punctuation">:</span><span class="token punctuation">:</span>Socket<span class="token punctuation">;</span> <span class="token keyword">my</span> <span class="token variable">$proxy</span> <span class="token operator">=</span> IO<span class="token punctuation">:</span><span class="token punctuation">:</span>Socket<span class="token punctuation">:</span><span class="token punctuation">:</span>INET<span class="token operator">-></span>new<span class="token punctuation">(</span><span class="token string">'www-proxy.t-online.de:80'</span><span class="token punctuation">)</span> <span class="token operator">or</span> <span class="token keyword">die</span> <span class="token variable">$@</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"GET https://finviz.com/chart.ashx?t=STZ&p=m HTTP/1.1\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Connection: Keep-Alive\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Host: www-proxy.t-online.de\r\n\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"GET https://finviz.com/chart.ashx?t=STZ&p=d HTTP/1.1\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Connection: Keep-Alive\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Host: www-proxy.t-online.de\r\n\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"GET https://finviz.com/chart.ashx?t=STZ&p=w HTTP/1.1\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Connection: Close\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$proxy</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Host: www-proxy.t-online.de\r\n\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token keyword">while</span> <span class="token operator"><</span><span class="token variable">$proxy</span><span class="token operator">></span><span class="token punctuation">;</span> </code></pre> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765363#m1765363 Rolf B 2020-02-17T16:13:52Z 2020-02-17T16:13:52Z Dynamische Links? <p>Hallo pl,</p> <p>das ist für den TO viel zu low-level. Ein Bit ist für ihn etwas, was eine Schaumkrone trägt. </p> <p>Er braucht 3 IMG-Tags mit Bild-URLs.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765364#m1765364 Rolf B 2020-02-17T16:14:24Z 2020-02-17T16:16:03Z Dynamische Links? <p>Hallo Tabellenkalk,</p> <p>ja, schon. Habe es mir aber verkniffen - dazu braucht's einen kräftigen Schuss VBA (Reaktion auf Klick in eine Zeile, Erstellen eines Image mit einer externen URL, kann man alles tun, muss man nur in VBA programmieren. Und ob es Excel ist, weiß man nicht, das war eine Hypothese).</p> <p>Man müsste dafür auch wissen, ob das Offenhalten der Excel-Tabelle für diesen Zweck den Wünschen des TO entspricht.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765375#m1765375 pl https://rolfrost.de/tapi 2020-02-18T08:11:33Z 2020-02-18T08:11:33Z Dynamische Links? <p>Was war denn nun das Problem?</p> <p>MFG</p> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765385#m1765385 Rolf B 2020-02-18T10:13:21Z 2020-02-18T10:13:21Z Dynamische Links? <p>Hallo Rolf,</p> <p>die Steuerelemente fehlen, weil Du es nicht angefordert hast. <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Toolbar_and_chrome_features" rel="nofollow noopener noreferrer">Hier</a> ist dokumentiert, was man noch alles einschalten kann. Beachte, dass "Chrome" hier die diversen Features des Browserfensters meint (sprich: das chromglänzende Rahmenwerk um den Webseiteninhalt herum) und nicht den Chrome-Browser.</p> <p>Was Du zeigst, enthält Tippfehler. Da steht <code>return false""</code> - das muss <code>return false;"</code> heißen. Das ist das Problem bei onclick: Das JavaScript steht als Text in einem HTML Attribut und man muss spitz aufpassen, dass alle Anführungszeichen richtig sind. Vor allem, wenn das Script selbst Anführungszeichen braucht.</p> <p>Von window.open hatte ich Dir abgeraten. Wenn es für deinen Fall hinreicht, okay. Du musst dann nur dreimal klicken - mit window.open und einem Fenster pro Chart bekommst Du eine Einklick-Lösung nicht hin. Die Browser lassen pro User-Interaktion genau EINEN window.open zu. Weil blöde Werbespammer das missbraucht haben, um den Screen des Users mit Fenstern zu fluten.</p> <p>Die Angabe von target="blank" für den Link brauchst du nicht. Dein onclick Handler endet auf <code>return false;</code>, das unterdrückt die Standardreaktion des Browsers auf den Klick, und es wird nur window.open ausgeführt. Dessen zweiter Parameter (bei Dir das 'd', 'w' und 'm') übernimmt die Aufgabe des target-Attributs. Es gibt hier einen speziellen Wert, nämlich '_blank', um IMMER in einem neuen Fenster zu öffnen. Es kommt natürlich darauf an, ob Du das willst. Ein konkreter Name wie d, w oder m sorgt dafür, dass ein erneuter window.open mit gleicher Namensangabe sich im gleichen Fenster öffnet und damit den alten Inhalt überschreibt.</p> <p>Da deine Links von Libreoffice generiert werden, relativiert sich das prinzipielle Problem deiner Lösung: das onclick Attribut. Sowas macht man heutzutage eigentlich anders, man hält JavaScript aus dem HTML heraus, aber ich nehme an, das ist Dir bei generiertem Code egal.</p> <p>Wenn Du eine Einklick-Lösung willst, lässt sich das mit JavaScript und einem parametrierten HTML durchaus lösen. Ich zeig's einfach mal.</p> <p>(1) Ein zentraler Click-Handler</p> <p>Im <head> Bereich deiner Link-Seite bringst Du dieses Scriptlein unter:</p> <pre><code class="block language-js"><span class="token operator"><</span>script<span class="token operator">></span> document<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">"click"</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">e</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">let</span> link <span class="token operator">=</span> e<span class="token punctuation">.</span>target<span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>link<span class="token punctuation">.</span>tagName <span class="token operator">!=</span> <span class="token string">"A"</span> <span class="token operator">||</span> <span class="token operator">!</span>link<span class="token punctuation">.</span>classList<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span><span class="token string">"tripleChart"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">return</span><span class="token punctuation">;</span> <span class="token keyword">let</span> url <span class="token operator">=</span> link<span class="token punctuation">.</span>href <span class="token operator">+</span> <span class="token string">"?img1="</span> <span class="token operator">+</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>link<span class="token punctuation">.</span>dataset<span class="token punctuation">.</span>chart1<span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">"&img2="</span> <span class="token operator">+</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>link<span class="token punctuation">.</span>dataset<span class="token punctuation">.</span>chart2<span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">"&img3="</span> <span class="token operator">+</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>link<span class="token punctuation">.</span>dataset<span class="token punctuation">.</span>chart3<span class="token punctuation">)</span><span class="token punctuation">;</span> window<span class="token punctuation">.</span><span class="token function">open</span><span class="token punctuation">(</span>url<span class="token punctuation">,</span> <span class="token string">'data'</span><span class="token punctuation">,</span> <span class="token string">'width=710,height=1120,left=0,top=0'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> e<span class="token punctuation">.</span><span class="token function">preventDefault</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span> </code></pre> <p>Das ist ein click-handler, der auf JEDEN Klick im Dokument reagiert. Darum fragt er als erstes, ob er von einem <code>a</code> Element mit <code>class="tripleChart"</code> ausgelöst wurde, und stellt gleich wieder die Arbeit ein, wenn es das nicht war. Andernfalls baut er die Ziel-URL aus Attributen des Links zusammen und macht eine Helper-Seite mit <code>window.open</code> auf. Statt mit <code>return false;</code> endet er mit Aufruf von <code>preventDefault</code>, das ist der Standardweg, um die Defaultaktion des Browsers zu übergeben. Das Fenster öffne ich mit 710px Breite, sonst bekomme ich bei mir einen horizontalen Scrollbar. Aber das sind Details </p> <p>(2) Die Links</p> <p>Die Links dazu sähen dann so aus (der Lesbarkeit wegen auf Zeilen verteilt) - es ist natürlich nur EIN Link für alle 3 Charts. data-Attribute kann man im JavaScript mit der dataset-Eigenschaft nutzen und dienen zur Standard-Erweiterung von HTML Elementen.</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>tripleChart<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>showImages.html<span class="token punctuation">"</span></span> <span class="token attr-name">data-chart1</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://finviz.com/chart.ashx?t=STZ&p=d<span class="token punctuation">"</span></span> <span class="token attr-name">data-chart2</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://finviz.com/chart.ashx?t=STZ&p=w<span class="token punctuation">"</span></span> <span class="token attr-name">data-chart3</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://finviz.com/chart.ashx?t=STZ&p=m<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Finviz d/w/m<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> </code></pre> <p>Die showImages.html sollte im gleichen Ordner liegen wie die Index-HTML, dann braucht man keine besonderen Angaben für den Ort der Datei.</p> <p>Und sie sieht so aus - ACHTUNG, MINIMALISMUS! Da ist keine Fehlerprüfung drin, sie erwartet immer genau 3 Bilder, hat keine Überschrift, sie legt fest, dass ein Bild mit 1/3 der Fensterhöhe angezeigt wird und ist nicht responsiv. Also eigentlich jede HTML Sünde für's Web, aber du brauchst ja nur einen fix dimensionierten Popup-Container für 3 Bilder. Für deinen Zweck sollte sie daher vollig hinreichen. Als Template für eine Internetseite dient sie nicht. Es ist im Prinzip eine reduzierte Version von Gunnars Vorschlag.</p> <pre><code class="block language-html"><span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>title</span><span class="token punctuation">></span></span>Chartanzeige<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>title</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>style</span><span class="token punctuation">></span></span><span class="token style"><span class="token language-css"> <span class="token selector">img</span> <span class="token punctuation">{</span> <span class="token property">height</span><span class="token punctuation">:</span> 33vh<span class="token punctuation">;</span> <span class="token punctuation">}</span> </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>style</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>head</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript"> <span class="token keyword">let</span> parms <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span>document<span class="token punctuation">.</span>location<span class="token punctuation">.</span>search<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> i<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span> i<span class="token operator"><=</span><span class="token number">3</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">let</span> img <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createElement</span><span class="token punctuation">(</span><span class="token string">"img"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> img<span class="token punctuation">.</span>src <span class="token operator">=</span> parms<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"img"</span> <span class="token operator">+</span> i<span class="token punctuation">)</span><span class="token punctuation">;</span> document<span class="token punctuation">.</span>body<span class="token punctuation">.</span><span class="token function">appendChild</span><span class="token punctuation">(</span>img<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span> </code></pre> <p>Getestet habe ich das mit Chrome und Firefox unter Windows</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2020/feb/15/dynamische-links/1765494#m1765494 Rolf r.m@gmx-topmail.de 2020-02-19T16:05:29Z 2020-02-19T16:05:29Z Dynamische Links? <p>Moin Rolf,</p> <p>Du bist für mich der Held des Tages, es geht also doch genauso, wie ich mir das vorgestellt hatte. Das hab' ich kaum noch zu hoffen gewagt, nach allem "geht nicht". Vor allem noch ein dickes Lob dafür, daß Du es so erklärt hast, daß ICH es verstanden habe und umsetzen konnte.</p> <blockquote> <p>die Steuerelemente fehlen, weil Du es nicht angefordert hast.</p> </blockquote> <p>Kein Problem, mir kam's nur komisch vor.</p> <blockquote> <p>Was Du zeigst, enthält Tippfehler.</p> </blockquote> <p>Ist mir wohl beim Kopieren reingerutscht. Hatte keine Auswirkung, ist jetzt aber ohnehin obsolet.</p> <blockquote> <p>Die showImages.html sollte im gleichen Ordner liegen</p> </blockquote> <p>Bei mir besser nicht, ich kann unter ubuntu kein Schreibschutz-Attribut für eine einzelne Datei vergeben, hab's an einen "sicheren" Ort verschoben und den Pfad angepaßt.</p> <blockquote> <p>Das Fenster öffne ich mit 710px Breite, sonst bekomme ich bei mir einen horizontalen Scrollbar.</p> </blockquote> <p>Ich hab' die ganzen Größen- und Positionsangaben wieder 'rausgenommen, die waren ja nur dafür da, um drei Charts in drei Fenstern untereinander darzustellen. Jetzt öffnet der Link - wie auch die anderen - ein Fenster in voller Bildschirmgröße.</p> <blockquote> <p>... und ist nicht responsiv.</p> </blockquote> <p>Naja, ein bißchen responsiv war's schon, mir ZU responsiv. Bei jeder Änderung der Fenstergröße hat sich auch die Größe der Grafiken angepaßt, das lag an der Angabe "height: 33vh". Die hab' ich durch "height: 340" ersetzt, damit ich die Charts ohne Skalierung angezeigt bekomme, egal wie groß das Fenster ist. Die sehen einfach "sauberer" aus, wenn sie nicht skaliert sind.</p> <blockquote> <p>Getestet habe ich das mit Chrome und Firefox unter Windows</p> </blockquote> <p>Läuft einwandfrei auch mit Firefox unter ubuntu. DANKE!!!</p>