From a590117246ec8f81d2ad7d7fad4970b0627d55f1 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Tue, 11 Aug 2015 15:13:14 +0200 Subject: Element::getElementsByTagName() --- javascript/duktape/Element.bnd | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'javascript') diff --git a/javascript/duktape/Element.bnd b/javascript/duktape/Element.bnd index 1c592b228..706c6676c 100644 --- a/javascript/duktape/Element.bnd +++ b/javascript/duktape/Element.bnd @@ -174,3 +174,26 @@ getter Element::childElementCount() duk_push_uint(ctx, jsret); return 1; %} + +method Element::getElementsByTagName () +%{ + dom_nodelist *nlist = NULL; + dom_exception exc; + dom_string *tagname; + duk_size_t len; + const char *str = duk_to_lstring(ctx, 0, &len); + + exc = dom_string_create(str, len, &tagname); + + if (exc != DOM_NO_ERR) return 0; + + exc = dom_element_get_elements_by_tag_name(priv->parent.node, + tagname, &nlist); + dom_string_unref(tagname); + if (exc != DOM_NO_ERR) return 0; + duk_push_pointer(ctx, nlist); + dukky_create_object(ctx, PROTO_NAME(NODELIST), 1); + dom_nodelist_unref(nlist); + + return 1; +%} -- cgit v1.2.3