Einfügen von Links in meinen PopUpText

Hallo!
Ich habe zuletzt versucht einen link in meinen popuptext einzufügen.
Folgendes Problem tritt dabei auf:
Die Seite wird nicht mehr angezeigt sobald ich eine Kleinigkeit verändere:

hier der Text den ich in meinem Popup als String an dei JS Funktion übergebe:

Ich will nun den momentan dargestellten Text “betteln” als darstellen also als Link.
Reguläre Syntax wäre:

link text

egal was ich eingebe, es wird einfach garnichts mehr angezeigt.
Kann mir jemand vielleicht ein Beispiel geben? Oder liegt es an dem String den ich übergebe?
LG Triceps

ich vermute, es hängt mit dem Escaping zusammen. Versuche mal, die Anführungszeichen als ’ innerhalb der Variablendefinition, die mit " gekennzeichnet ist (oder anders rum, ist egal, aber anstatt " ).

Hi!
Danke für deine schnelle Antwort!
Leider hat das bei mir nicht funktioniert…
Danke
Triceps

Hast Du es so probiert:

var popuptextbetteln='<font color="black"><a href="hierdieurl">Betteln</a><p><img src="Betteln1.jpg" width="60" height="60"></p></font>';

Kennst Du die JavaScript-Konsole deines Browsers, die du mit der Taste F12 aufkriegst? Da gibts detailliertere Fehlermeldungen, die du dann in Zukunft mit angeben kannst (denn mit “funktioniert nicht” können wir hier nicht so viel anfangen und müssen raten).

Viel Erfolg!

es wird jedenfalls ziemlich sicher ein Problem irgendwo sein, dass falsch gequotet wird, oder ein Strichpunkt vergessen ist, oder was in der Art, Du solltest Dir die js Fehler ansehen in der Konsole, da kannst Du vermutlich erkennen, wo genau der Fehler liegt.

Wie ist der Zusammenhang zw. den var popuptextbetteln / popuptextbetteln2 und dem Rest des Codes?

Aus deinem Beitrag kann ich nicht entnehmen, was die Kleinigkeit ist, die du veränderst. Es wäre hilfreich, wenn du die veränderten Code-Zeilen vor und nach der Änderung hier einstellen würdest.

Hat das Popup mit dem Code der Funktion addMarker, wie du sie in deinen Beitrag eingebunden hast, schon mal funktioniert, z.B. wenn du in popupContentHTML nur reinen Text übergibst?

Vielen Dank für die schnellen Antworten:

So hatte ich es im Sinn:
Original:


var popuptextbetteln="<font color=\"black\"><b>Betteln<br><br></b><p><img src=\"Betteln1.jpg\" width=\"60\" height=\"60\"></p></font>";
   var popuptextbetteln2="<font color=\"black\"><b>Motel buchen<br>link<br></b><p><img src=\"motel.jpg\" width=\"60\" height=\"60\"></p></f

Meine Version mit dem Versuch einen Link einzufügen:


var popuptextbetteln="<font color=\"black\"><a href="http://www.tagesschau.de/">ARD Tagesschau</a><img src=\"Betteln1.jpg\" width=\"60\" height=\"60\"></p></font>";
   var popuptextbetteln2="<font color=\"black\"><b>Motel buchen<br>link<br></b><p><img src=\"motel.jpg\" width=\"60\" height=\"60\"></p></f

Das habe ich eingefügt:


<a href="http://www.tagesschau.de/">ARD Tagesschau</a>

Überall sonst funktioniert die href einwandfrei.
Ich verstehe nicht was ich falsch mache…

LG
Triceps

Der Zusammenhang mit dem Betteln besteht folgendermaßen:

Wegen eines Schulprojekts wollten wir eine Webseite namens PennerGame nachbasteln.
Allerdings kann uns auch der Zuständige Lehrer leider nicht helfen.
In dem Popuptext soll lediglich der TExt im Popupfenster übergeben werden.
Darin sollte sich ein Link befinden. So kann der Nutzer sich von Position von Position navigieren…
LG
Triceps

Warum machst du bei color einen Backslash vor die Anführungszeichen, bei href aber nicht? So kann das nicht funktionieren. Allerdings sollte das auch in der Debug-Konsole des Browsers eine Fehlermeldung erzeugen.

Wenn man mit Javascript und OpenLayers entwickelt, empfiehlt es sich zunächst immer die Konsole des Browsers offen zu haben und auf Fehlermeldungen zu achten. Bei Firefox öffnet man die Konsole entweder über das Kontextmenü und “Element untersuchen” und dann auf das Tab “Konsole”, “Fehler” und “Warnungen” aktivieren.

var popuptextbetteln="<font color=\"black\"><a href="http://www.tagesschau.de/">ARD Tagesschau</a><img src=\"Betteln1.jpg\" width=\"60\" height=\"60\"></p></font>";

Das konkrete Problem ist, das für den Javascript-Interpreter im Browser, also der Programmteil der dein Javascript ausführt, eine Zeichenkette (engl: string) da aufhört, wo ein Begrenzungszeichen ist. Du kannst deinen String entweder mit " oder mit ’ begrenzen.

var soGehts = "Hallo"; // OK
var soGehtsAuch = 'HalloHallo'; // OK
var soNicht = "Hallo'; // falsch
var soAuchNicht = 'Hallo"; // falsch

Dein Code ließt sich so, als würde der String popuptextbetteln nur

<font color=\"black\"><a href=

sein, denn das doppelte Anführungszeichen vor http://www.tagesschau.de ist nicht maskiert (also als " geschrieben), und wird deshalb als Begrenzungszeichen interpretiert. Danach kommt dann der Programmiersprachenbefehl http://www.tagesschau.de, und den gibts nicht, klar.

Doppelte Anführungszeichen als Textbegrenzer: einfach ".
Doppelte Anführungszeichen als Teil des Textes: mit "

Hier beide Varianten:

var muenchentext="M&uuml;nchen<br>Stadt in Deutschland<br><img src=\"thu_muenchen15.jpg\"/><br><a href=\"https://www.tagesschau.de/\" target=\"_blank\">Tagesschau</a>";
addMarker(layerpkt, 11.58, 48.13, muenchentext );
var venedigtext='Venedig<br>Stadt in Italien<br><img src="thu_venedig18.jpg"/><br><a href="https://www.rainews.it/" target="_blank">RAI News</a>';
addMarker(layerpkt, 12.33, 45.43, venedigtext);

Sieht dann so aus: http://geo.dianacht.de/tests/popupmitx4.html