Procházet zdrojové kódy

LibWeb: Allow Element.insertAdjacentHTML on the document element

This fixes wpt/domparsing/insert_adjacent_html.html
Andreas Kling před 1 rokem
rodič
revize
802af5ad9d

+ 1 - 0
Tests/LibWeb/Text/expected/HTML/Element-insertAdjacentHTML-documentElement.txt

@@ -0,0 +1 @@
+PASS (didn't crash)

+ 7 - 0
Tests/LibWeb/Text/input/HTML/Element-insertAdjacentHTML-documentElement.html

@@ -0,0 +1,7 @@
+<script src="../include.js"></script>
+<script>
+    test(() => {
+        document.documentElement.insertAdjacentHTML("afterbegin", "hello");
+        println("PASS (didn't crash)");
+    });
+</script>

+ 1 - 2
Userland/Libraries/LibWeb/DOM/Element.cpp

@@ -1489,8 +1489,7 @@ WebIDL::ExceptionOr<void> Element::insert_adjacent_html(String const& position,
         || (context->document().document_type() == Document::Type::HTML
             && static_cast<Element const&>(*context).local_name() == "html"sv
             && static_cast<Element const&>(*context).namespace_uri() == Namespace::HTML)) {
-        // FIXME: set context to the result of creating an element given this's node document, body, and the HTML namespace.
-        TODO();
+        context = TRY(create_element(document(), HTML::TagNames::body, Namespace::HTML));
     }
 
     // 4. Let fragment be the result of invoking the fragment parsing algorithm steps with context and string.