Diese Funktion eignet sich am besten für diejenigen mit Entwicklungserfahrung. Wenn Sie sich beim Arbeiten mit dem DOM oder der Shadow DOM-Kapselung nicht wohl fühlen, ist es eine gute Idee, einen Entwickler zu kontaktieren oder Online-Ressourcen zu Web Components und Shadow DOM-Grundlagen zu konsultieren.
Einschränkungen von Standardselektoren
Standard-CSS-Selektoren oder JavaScript-Methoden wiequerySelector() oder $() funktionieren nicht bei Elementen innerhalb eines Shadow DOM. Diese Elemente sind vor der Hauptseite verborgen, was bedeutet:
- Sie können Elemente innerhalb eines Shadow DOM nicht mit den üblichen Auswahlmethoden im Kameleoon Graphic Editor anvisieren.
- Das Anvisieren dieser Elemente mit traditionellen CSS- oder jQuery-ähnlichen Selektoren in Ihrem Experiment kann fehlschlagen.
- Etwaige Änderungen (wie Textänderungen, Stilaktualisierungen oder Inhaltseinfügungen) werden möglicherweise nicht angewendet, sofern keine besonderen Schritte unternommen werden, um die Shadow DOM-Grenze zu überwinden.
Mit Shadow DOM im Graphic Editor arbeiten
In den meisten Fällen können Benutzer Elemente innerhalb eines Shadow Root direkt aus dem Vorschaubereich im Kameleoon Graphic Editor auswählen.Wann das zusätzliche „Shadow root path”-Eingabefeld erscheint
In einigen Fällen, wenn Sie versuchen, ein Element innerhalb eines Shadow DOM mit dem Kameleoon Graphic Editor auszuwählen oder zu bearbeiten, sehen Sie möglicherweise ein zusätzliches Eingabefeld mit der Bezeichnung Shadow root path. Dieses Feld erscheint, wenn Kameleoon erkennt, dass das Zielelement innerhalb eines Shadow-Baums existiert und mit Standardselektoren nicht erreicht werden kann. Mit dem Shadow root path können Sie einen bestimmten Pfad durch verschachtelte Shadow DOM-Ebenen definieren, damit Kameleoon das Element während der Experimentausführung erreichen und modifizieren kann. Mock-Verbindung: Der Graphic Editor verwendet diesen Pfad, um die Verbindung zwischen dem Haupt-DOM und dem Element innerhalb des Shadow DOM zu „simulieren”, was Ihnen ermöglicht, Änderungen visuell zu bearbeiten und in der Vorschau anzuzeigen, als wäre das Element Teil der regulären Seitenstruktur.Beispiele
Eine Schaltfläche innerhalb eines Shadow Root anvisieren
Im Kameleoon Graphic Editor können Sie Elemente innerhalb eines Shadow Root anvisieren:- Direkt im Vorschaubereich: Wenn das Element zugänglich ist, können Sie es in der Editor-Vorschau auswählen, wie jedes andere Standardelement.
- Mit „Edit selector”: Für komplexere Strukturen können Sie den Selektorpfad manuell mit dem Eingabefeld Edit selector konstruieren. Verwenden Sie den Trenner
::SHADOW-ROOT::, um einen Schritt in den Shadow Root anzuzeigen.
Shadow DOM in DevTools inspizieren
- Klicken Sie mit der rechten Maustaste auf das Element > Inspect.
- Suchen Sie im Panel Elements unter dem benutzerdefinierten Element nach
#shadow-root (open). - Erweitern Sie es, um die inneren Elemente anzuzeigen.
Visuelle Hinweise oder Beschriftungen in der Benutzeroberfläche
Beim Arbeiten mit Webseiten, die Shadow DOM verwenden, bietet der Kameleoon Graphic Editor mehrere visuelle Indikatoren, die Ihnen helfen zu erkennen, wann Elemente Teil eines Shadow Root sind.#shadow-root im Elements-Panel

#shadow-root als Teil ihres CSS-Selektors an, was darauf hinweist, dass das Element gekapselt ist und nicht Teil des Haupt-DOM-Baums ist.
Feld „Shadow root path” im Selektor-Panel

::SHADOW-ROOT::-Syntax erstellen.
Wie man einen Selektorpfad für Shadow DOM-Elemente schreibt
Beim Arbeiten mit Shadow DOM-Elementen im Graphic Editor von Kameleoon reicht ein Standard-CSS-Selektor nicht aus. Sie müssen einen Selektorpfad definieren, der den Shadow Root einschließt. Um ein Element innerhalb eines Shadow Root mit einer einzigen Ebene anzuvisieren, verwenden Sie den Trenner::SHADOW-ROOT:::
custom-element::SHADOW-ROOT::.target-button
Der Trenner ::SHADOW-ROOT:: weist Kameleoon an, in den Shadow Root des angegebenen Elements einzutreten und das Anvisieren darin mit Standard-CSS-Selektoren fortzusetzen.
Kameleoon unterstützt derzeit nur die Navigation eine Ebene in das Shadow DOM. Wenn das Element in mehrere Shadow Roots verschachtelt ist, kann es derzeit nicht mit einem vollständigen Selektorpfad anvisiert werden.
Beispiel
my-element::SHADOW-ROOT::.cta
Dies weist Kameleoon an:
- Das
my-element-Element auszuwählen. - In seinen Shadow Root einzutreten.
- Die
.cta-Schaltfläche darin anzuvisieren.
Einschränkungen und Überlegungen
Beachten Sie beim Arbeiten mit Shadow DOM die folgenden Einschränkungen:- Geschlossene Shadow DOMs: Elemente in einem geschlossenen Shadow Root können nicht mit dem Graphic Editor oder Standard-JavaScript erreicht oder modifiziert werden.
- Dynamischer oder skriptgenerierter Inhalt: Wenn Inhalte innerhalb eines Shadow Root dynamisch generiert oder aktualisiert werden, bleiben Ihre Änderungen möglicherweise nicht bestehen oder werden nicht wie erwartet wirksam.
- Stilbeschränkungen: Von außerhalb des Shadow Root angewendete Stile wirken sich aufgrund der Stilkapselung des Shadow DOM oft nicht auf innere Elemente aus. CSS-Regeln müssen möglicherweise direkt innerhalb der internen Struktur der Komponente angewendet werden, was über den Graphic Editor nicht möglich ist.
Shadow Root (geschlossen)
Einige Web Components verwenden einen geschlossenen Shadow Root, was bedeutet, dass ihr internes DOM vor den Entwicklertools des Browsers und JavaScript vollständig verborgen ist. Im Gegensatz zu einem offenen Shadow Root, auf den Sie mit.shadowRoot zugreifen können, gibt ein geschlossener Shadow Root seinen Inhalt nicht über das DOM preis, was ihn unzugänglich macht für:
- Den Graphic Editor
- JavaScript-basiertes Targeting
- Selektorpfade oder benutzerdefinierte Skripte
Was können Sie tun?
Wenn ein wichtiges Element innerhalb eines geschlossenen Shadow Root liegt, benötigen Sie Hilfe von einem Entwickler. Er kann:- Die Komponente mit einem offenen Shadow Root neu erstellen.
- Bestimmte Elemente für externes Targeting freigeben.
- Einen Hook oder eine Lösung für das Targeting bereitstellen.