Auf Html Elemente zugreifen mit Dart
Bisher: Wir haben ein Template für ein Dart Web Project erstellt, Bootstrap 5 integriert. Bei Bootstrap 5 haben wir gelernt, das es ein 12 Kolumnen / Spalten Layoutsystem, ein wesentlicher Bestandteil dieses Frameworks ist.
Und hier betrachten wir besonders den <h1>....</h1> Tag:
Ein h1 Element stellt eine Überschrift dar. Es gibt dieses Element in sechst Stufen, h1 bis h6. Wichtig ist im Code oben class und id. Beides sind Namen für Attribute, die diesem h1 Tag zugeordnet werden. class verweist dabei mit "display-4" auf eine css3 Klasse, id erhält mit "output" eine, in diesem html Dokument, einzigartige Kennung.
Der Text wird durch diesen Code in die Webpage gebracht.
Neu sehen Sie das Attribut name im h1 Tag. Den dart Code ändern Sie wie folgt:
Wenn Sie den Code in Visual Studio Code ausführen lassen, erscheint das gleiche Ergebnis, wie bei der ersten Variante:
In diesem Post werden wir näher auf die Verknüpfung zwischen unserem Dart File und index.html eingehen.
Bevor wir das tun, ein Hinweis auf DOM. Die Abkürzung steht für Document Object Model.
Wenn ein Browser eine Webpage lädt, erstellt er im Speicher ein DOM der Webpage. Sie dient für JavaScript, aber natürlich auch für Dart, als Interface. Damit ist gemeint, das dieses DOM eine baumartige Struktur zur Verfügung stellt, in welcher wir uns unter Verwendung von Dart bewegen.
Ich werde hier nicht weiter darauf eingehen, da es im Web genügend Ressourcen gibt, die weitere Informationen dazu liefern.
Ich werde hier nicht weiter darauf eingehen, da es im Web genügend Ressourcen gibt, die weitere Informationen dazu liefern.
Schauen Sie sich noch einmal den Code der index.html Datei an:
<html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="scaffolded-by" content="https://github.com/dart-lang/stagehand"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous"> <title>dartweb1</title> <link rel="stylesheet" href="styles.css"> <link rel="icon" href="favicon.ico"> <script defer src="main.dart.js"></script> </head> <body> <div> <h1 class="display-4" id="output"></h1> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf" crossorigin="anonymous"></script> </body> </html>
<h1 class="display-4" id="output"></h1>
Kurz: In diesem html Dokument könnten mehrere h1 Elemente die class="display-4" haben, aber nur ein h1 Element kann die id="output" haben.
Man kann nicht alle verfügbaren Html Attribute, jedem Html Tag zuordnen. Hier lohnt es sich im Zweifelsfall, weitere Informationen einzuholen. Hier ein Link zu den globalen Attributen , und zu den Ereignis Attributen für das h1 Tag.
Natürlich muss ein Html Tag keine Attribute haben, das ist Ihre Entscheidung.
Natürlich muss ein Html Tag keine Attribute haben, das ist Ihre Entscheidung.
Bevor Sie zurück zu dem main.dart file gehen: Beachten Sie, das im <h1>...</h1> Tag keine Zeichenkette steht ! Das main.dart file:
import 'dart:html'; void main() { querySelector('#output').text = 'Die Dart Anwendung funktioniert !'; }
querySelector(...)
Mit dieser Funktion aus der dart:html Bibliothek, können Sie einzelne Html Elemente anhand der Attribute ansprechen. Im Code oben wird das id Attribut als Suchargument verwendet Ändern Sie den h1 Tag wie folgt ab:
<h1 class="display-4" id="output" name="felix"></h1>
import 'dart:html'; void main() { querySelector('[name="felix"]').text = 'Die Dart Anwendung funktioniert !'; }
Sie können querySelector(...) auch den Tag Namen als Argument übergeben. Wobei hier zu beachten ist, das die Funktion das erste Tag des gesuchten Typs zurückgibt. Das heisst, sollten sie mehrere h1 Elemente in Ihrem Dokument haben, wird querySelector('h1'), das erste zurückgeben, das er findet. Bis bald !
Kommentare
Kommentar veröffentlichen