suchen
HeimWeb-Frontendjs-TutorialImplementieren Sie die Zusammensetzung von JavaScript (detaillierte Interpretation von BOM und DOM).

Jetzt bringe ich Ihnen einen Artikel über die Implementierung von JavaScript (ausführliche Erklärung von BOM und DOM). Jetzt teile ich es mit Ihnen und gebe es als Referenz.

Wir wissen, dass eine vollständige JavaScript-Implementierung aus drei Teilen bestehen muss: ECMAScript (Kern), BOM (Browser Object Model) und DOM (Document Object Model).

BOM:

BOM stellt viele Objekte für den Zugriff auf Browserfunktionen bereit, die nichts mit dem Inhalt der Webseite zu tun haben (dies sind DOM). ), derzeit wurde BOM vom W3C in die HTML5-Spezifikation verschoben.

Fensterobjekt:

Der Kern von BOM stellt eine Instanz des Browsers dar. Es ist sowohl eine Schnittstelle für den Zugriff auf das Browserfenster über Javascript als auch ein durch ECMAScript spezifiziertes Global . Objekt, d. h. jedes auf der Webseite definierte Objekt, jede Variable und jede Funktion hat window als globales Objekt und hat daher Zugriff auf Methoden wie paresinInt(). (Auszug aus Höhe Drei). Wenn eine Webseite außerdem Frames enthält, verfügt jeder Frame über ein eigenes Fensterobjekt und wird in der Frames-Sammlung gespeichert (beginnend bei Index 0, ltr, ttb).

Erstens sind die Variablen und Funktionen in der globalen Ausführungsumgebung alle Attribute und Methoden des Fensterobjekts. Natürlich gibt es einen kleinen Unterschied zwischen globalen Variablen und dem direkt definierten Fenstereigenschaftstyp. Globale Variablen (genauer gesagt explizit deklarierte globale Variablen) können nicht gelöscht werden, die Fenstereigenschaft jedoch. Darüber hinaus ist noch ein weiteres Detail zu beachten. Der Versuch, auf nicht deklarierte Variablen zuzugreifen, führt zu einem Fehler, bei der Verwendung des Abfragefensterobjekts besteht jedoch kein Problem.

Was sind also die gemeinsamen Eigenschaften oder Methoden von Fenstern?

1.Name, jedes Fensterobjekt verfügt über ein Namensattribut, das den Namen des Rahmens enthält. Normalerweise zum Verständnis von Fensterbeziehungen und Rahmen.

2. Fensterpositionsmethode: moveTo (x-Koordinate der neuen Position, y-Koordinate der neuen Position), moveBy (x horizontal verschieben, y vertikal verschieben). Diese beiden Methoden sind auf das Framework nicht anwendbar.

3. Fenstergrößenattribute: innerWidth/Height (Größe des Ansichtsbereichs (abzüglich der Breite des Rahmens)/* IE, Safari, Firefox */), OuterWidth/Height (gibt die Größe des Browsers zurück window/* IE, Safari, Firefox */). In Chrome geben inner und external beide die Größe des Ansichtsbereichs zurück.

Natürlich können Sie die Fenstergröße durch resizeTo (neue Fensterbreite, neue Fensterhöhe) und resizeBy (x gegenüber ursprünglicher Breite vergrößern, y gegenüber ursprünglicher Höhe vergrößern) ändern. Diese Liebesliedmethode gilt nicht für Rahmenkonstruktionen.

4.window.open (URL, Fensterziel, Attributzeichenfolge, boolescher Wert, ob die neue Seite die aktuell geladene Seite im Browserverlauf ersetzt) ​​wird verwendet, um zu einer bestimmten URL zu navigieren oder ein neues Fenster zu öffnen. Wenn ein Fensterziel angegeben ist und das Fensterziel der Name eines vorhandenen Fensters oder Frames ist, wird die angegebene URL in das umbenannte Fenster oder Frame geladen. Andernfalls wird das neue Fenster, das geöffnet wird, als Zielfenster bezeichnet. Zu den Schlüsselwörtern, die für das Fensterziel angegeben werden können, gehören natürlich _self, _parent, _top und _blank.

<a href=http://www.jb51.net>click me</a>
    <script>
    var link=document.getElementsByTagName("a")[0];
      alert(link.nodeName);   
     window.onload=function(){
      
      link.onclick=function () {
        window.open(link.href,"good","width=400px,height=300px");
        return false;
    
      }  
    }
  </script

Die spezifischen Einstellungen der charakteristischen Zeichenfolge werden hier nicht im Detail beschrieben

5. Als Single-Threaded-Sprache ermöglicht js weiterhin das Festlegen des Timeouts Wert (angegebener Code nach dem Ereignis ausführen) und Intervallzeitwert (Zyklus zu jedem angegebenen Zeitpunkt), um die Codeausführung zu einem bestimmten Zeitpunkt zu planen.

Timeout-Aufruf: setTimeout (JS-Codezeichenfolge, Millisekundenzeit) Wenn die Task-Warteschlange nach dem Satz leer ist, kann sie als Single-Thread-Sprache jeweils nur einen Code ausführen ZeitintervallFühren Sie dann die Codezeichenfolge aus. Andernfalls warten Sie, bis die vorherige Codeausführung abgeschlossen ist, bevor Sie sie ausführen.

var al=setTimeout(function () {
      alert("good");
    },5000);
    alert(al); //2

Hier habe ich eine anonyme Funktion aufgerufen, um nach 5 Sekunden „Gut“ auszugeben, und im Fenster wurde ein Warnfeld mit der Anzeige 2 angezeigt. Es ist ersichtlich, dass die Funktion „setTimeout()“ eine numerische ID zurückgibt, die ist eindeutig, dann können wir diese ID verwenden, um den Timeout-Aufruf zu löschen, und Sie können clearTimeout(ID) verwenden, um ihn zu löschen.

Indirekter Aufruf: setInterval(), es akzeptiert die gleichen Parameter wie setTimeout() und gibt außerdem eine numerische ID zurück, die mit clearTimeout() gelöscht werden kann.

6. Methoden des Systemdialogfelds: Alert(), Confirm(), Prompt() usw. sind in meinem vorherigen Blog beschrieben, klicken Sie hier

Standortobjekt

Anstelle eines Objekts in der Stückliste ist es besser zu sagen, dass der Standort ein Attribut im Fensterobjekt ist. Natürlich ist es auch ein Attribut des Dokumentobjekts im DOM, das später besprochen wird. Das heißt, window.location und document location beziehen sich auf dasselbe Objekt.

Durch Ändern dieser Attribute kann eine neue Seite geladen und ein neuer Datensatz im Verlauf generiert werden. Durch die Verwendung von location.replace() werden keine neuen Datensätze im Verlauf generiert.

hash "#contents" 返回url中的hash,没有为“”
host "www.google.com" 返回服务器名和端口号(如果有)
hostname "www.google.com" 返回不带端口号的服务器名称
href "www.google.com" 返回当前页面的完整url,调用了assign()
pathname ''/wileyCDA/' 返回目录名称
port "8080" 返回端口号,没有则返回空字符串
protocol "http:" 返回页面使用的协议
search "?=javascript" 返回查询字符串,以问号开头

Navigatorobjekt: Der De-facto-Standard zur Identifizierung von Browsern. Seine Eigenschaften und Methoden werden hauptsächlich zur Erkennung des Browsertyps verwendet.

Der Rest, wie das Verlaufsobjekt (historische Aufzeichnungen speichern) und das Bildschirmobjekt (zeigt die Fähigkeiten des Clients an), sind bei der Programmierung in js nicht sehr nützlich und werden daher nicht im Detail beschrieben.

---------------- ------ ----------------------------------

DOM:

DOM ist eine auf XML basierende und für HTML erweiterte API, die auf der Knotenbaumerweiterung basiert.

Zunächst muss klargestellt werden, dass der Dokumentknoten der Wurzelknoten jedes Knotens ist. Der Dokumentknoten hat und hat nur einen untergeordneten Knoten, nämlich das Element html (Dokumentelement).

Knotentyp:

Eine Schnittstelle in DOM1, die von allen DOM-Knotentypen (Textknoten, Attributknoten, Elementknoten) implementiert wird. Diese Schnittstelle wird in js als verwendet Implementierung des Knotentyps.

nodeType-Attribut, das jedem Knoten gehört. Dargestellt durch 12 numerische Werte, element--1, attribute--2, text--3...

nodeName-Attribut Für Elementknoten ist der Wert von nodeName der Labelname.

nodeValue-Attribut, für Elementknoten ist der Wert von nodeValue null.

Knotenbeziehung: Jeder Knoten hat ein childNodes-Attribut und speichert ein NodeList-Objekt (wie ein Array-Objekt). Jeder Knoten verfügt über ein parentNode-Attribut, das auf den übergeordneten Knoten verweist. Die Knoten in childNodes haben denselben parentNode. Auf Geschwisterknoten kann über die Eigenschaften previousSibling und nextSibling zugegriffen werden. Gleichzeitig sind childNodes[0]==firstChild, childNodes[childNodes.length-1]==lastChild.

Operation node: appendChild(), einen Knoten an das Ende von NodeList schieben und zurückgeben neu hinzugefügter Knoten. insertBefore() löst die Verschiebung eines Knotens an den Kopf von NodeList auf und gibt den neu hinzugefügten Knoten zurück. replaceChild(newChild,targetChild) ersetzt den Zielknoten. Der ursprüngliche Knoten befindet sich noch im Dokument, hat aber keine Position. RemoveChild(tragetChild), entfernt Knoten, hat einen ähnlichen Effekt wie replaceChild(). cloneChild(boolean), true bedeutet vollständige Kopie (gesamter Knoten und untergeordnete Knoten), false bedeutet einfache Kopie.

Dokumenttyp:

stellt ein Dokument dar. Das Dokumentobjekt ist eine Instanz von HTMLDDocument (geerbt vom Dokumenttyp) und repräsentiert die gesamte HTML-Seite. Gleichzeitig ist das Dokumentobjekt auch eine Eigenschaft des Fensterobjekts, sodass auf es als globales Objekt zugegriffen werden kann. document.firstChild==html. document.body==body document.doctype--->Referenz auf . document.title--->title document.url--->location.url.

Elemente suchen: getElementById(),getElementsByTagName(),getElementsByClassName().

Dokument schreiben Eingabe: write(), writeln(), open(), close()

Elementtyp:

getAttribute(), um Attribute für die Klasse abzurufen, verwenden Sie „ class“ anstelle von className können Sie das Klassenattribut erhalten, wenn Sie element.className verwenden.

setAttribute() legt das Attribut fest und ersetzt es, falls vorhanden. Ansonsten erstellen.

removeAttribute(), entfernt Elementattribute vollständig.

createElement(), erstellt ein neues Element.

Texttyp:

createTextNode(), erstellt einen Textknoten. Wenn zwei Textknoten benachbarte Geschwisterknoten sind, werden die beiden Texte verbunden.

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Grundlegende Spezifikationen von JavaScript

Grundlegende Verwendung von Javascript

Beispielcode zum Erstellen von Feuerwerks-Spezialeffekten mit p5.js_JavascriptTipps

Das obige ist der detaillierte Inhalt vonImplementieren Sie die Zusammensetzung von JavaScript (detaillierte Interpretation von BOM und DOM).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Die Ursprünge von JavaScript: Erforschung seiner ImplementierungsspracheDie Ursprünge von JavaScript: Erforschung seiner ImplementierungsspracheApr 29, 2025 am 12:51 AM

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

Hinter den Kulissen: Welche Sprache macht JavaScript?Hinter den Kulissen: Welche Sprache macht JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.

Die Zukunft von Python und JavaScript: Trends und VorhersagenDie Zukunft von Python und JavaScript: Trends und VorhersagenApr 27, 2025 am 12:21 AM

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Python vs. JavaScript: Entwicklungsumgebungen und ToolsPython vs. JavaScript: Entwicklungsumgebungen und ToolsApr 26, 2025 am 12:09 AM

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

Ist JavaScript in C geschrieben? Prüfung der BeweiseIst JavaScript in C geschrieben? Prüfung der BeweiseApr 25, 2025 am 12:15 AM

Ja, der Motorkern von JavaScript ist in C. 1) Die C -Sprache bietet eine effiziente Leistung und die zugrunde liegende Steuerung, die für die Entwicklung der JavaScript -Engine geeignet ist. 2) Die V8-Engine als Beispiel wird sein Kern in C geschrieben, wobei die Effizienz und objektorientierte Eigenschaften von C kombiniert werden.

JavaScripts Rolle: das Web interaktiv und dynamisch machenJavaScripts Rolle: das Web interaktiv und dynamisch machenApr 24, 2025 am 12:12 AM

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript: Die Verbindung erklärteC und JavaScript: Die Verbindung erklärteApr 23, 2025 am 12:07 AM

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

Von Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptVon Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptApr 22, 2025 am 12:02 AM

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool