# Javascript URL als Link



## Zeppi (10. Jun 2021)

Moin, ich arbeite gerade mit einem Websocket. Ich bin gerade dabei, dass man seine Location teilen kann, wenn man auf einen Button klickt. Aber jetzt steht da dann immer die URL in klarschrift, aber ich hätte die URL gerne in einem Link. Aber ich weiß nicht genau wie ich das machen soll, da man a href nicht im Script erzeugen kann, bzw. ich wüsste nicht wie. An sich bekomme ich den richtigen Link mit den richtigen Koordinaten wieder, aber bekomme das halt nicht in einen Link.



```
<body>
    <button onclick="geoLoc()">Location teilen</button>

    <script>
       
        ws.onmessage = event => {
            var data = JSON.parse(event.data)

            if (data.type == 'geolocation') {
                var ul = 'http://openstreetmap.org/?lat='+data.latitude+'&lon='+data.longitude+'&zoom=15';
                var div = document.createElement('div');
                div.innerText = data.username + 'hat seine Position geteilt: ' ; //hier soll mit einem + dann eingentlich der Link eingefügt werden.
                document.body.append(div);

            }
        };

  function geoLoc() {
            var name = document.querySelector("#vorname").value;
            ws.send(JSON.stringify({
                type: 'geolocation',
                uuid: id,
                username: name,
                latitude: 51.509,
                longitude: -0.08,
            }))
        }
```


Vielleicht hat jemand ja einen Tipp.

Danke Zeppi


----------



## mihe7 (10. Jun 2021)

Du erstellst einen Textnode und ein a-Element und fügst beide als Kindknoten des div-Elements ein:

```
var ul = 'http://openstreetmap.org/?lat='+data.latitude+'&lon='+data.longitude+'&zoom=15';

// Link zusammenbasteln
var link = document.createElement("a");
link.href = ul; // Ziel = URL
link.innerText = ul; // angezeigter Text = URL

// div zusammenbasteln
var div = document.createElement('div');
div.appendChild(document.createTextNode(data.username + ' hat seine Position geteilt: '));
div.appendChild(link);

// div hinzufügen
document.body.append(div);
```


----------



## Zeppi (10. Jun 2021)

Klasse !! Funktioniert 1A.
Danke


----------

