diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-08-11 15:13:14 +0200 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-08-11 15:13:14 +0200 |
commit | a590117246ec8f81d2ad7d7fad4970b0627d55f1 (patch) | |
tree | a4fda5c047c9991d87238babd265ef7c91bac30b /javascript | |
parent | 73fbaf6fb190dc94ba11eb7a57e5f5238457298f (diff) | |
download | netsurf-a590117246ec8f81d2ad7d7fad4970b0627d55f1.tar.gz netsurf-a590117246ec8f81d2ad7d7fad4970b0627d55f1.tar.bz2 |
Element::getElementsByTagName()
Diffstat (limited to 'javascript')
-rw-r--r-- | javascript/duktape/Element.bnd | 23 |
1 files changed, 23 insertions, 0 deletions
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; +%} |