[whatwg] Intergrating the DOM and JavaScript (JSDOM)

Andrew Fedoniouk news at terrainformatica.com
Fri May 12 12:41:49 PDT 2006

----- Original Message ----- 
From: "Lachlan Hunt" <lachlan.hunt at lachy.id.au>
To: "Dean Edwards" <dean at edwards.name>
Cc: "Andrew Fedoniouk" <news at terrainformatica.com>; "whatwg"
<whatwg at whatwg.org>
Sent: Friday, May 12, 2006 4:06 AM
Subject: Re: [whatwg] Intergrating the DOM and JavaScript (JSDOM)

> Dean Edwards wrote:
>> On 12/05/06, Andrew Fedoniouk <news at terrainformatica.com> wrote:
>>> var checked = root.select("input[type=checkbox]:checked");
>> You appear to be using a different DOM to everyone else.
> He's using his proprietary DOM extensions [1] found in his own browser.

Yep, but these are not extensions.

Design goals of the Sciter:

1) To create very thin scripting layer. Thin here means - compact and fast.
    Scripting Element in Sciter *is a* html::element (internal C++ class) - 
    any intermediate layers like COM/XPCOM and reference counting problems
    associated with them.

2) If needed standard DOM can be emulated as a set of scriting 
    for example it might be some stddom.js script file having following:

       var document = root;
      document.getElementByID = function(id) {  return document.select("#%s", 
id);   }

   This adds document object definition having getElementByID method.
   And all other getElementsBy*** can be added as simple wrapper functions
   around that select method.

Again: main motivation is to make DOM/scripting system as much fast
and simple as possible.

OT: Even more - Sciter uses scripting language (tiscript) which is close but
not exactly ECMAScript.

In Sciter
  element.prototype === Element;
In ECMAScript
  element.prototype === Element.prototype; // for reasons unknown to me.

This makes prototype stuff more human readable/understandable.
But this is for discussion in separate topic I beleive.

>  Though from what I gather from that documentation, that actually doesn't
> do the same thing as the functions you originally described because it
> returns an Element, not a boolean.

If you need it to be exactly boolean then use:
var isChecked = root.select("input[type=checkbox]:checked")?  true: false;

Andrew Fedoniouk.

> [1] http://www.terrainformatica.com/sciter/Element.whtm
> -- 
> Lachlan Hunt
> http://lachy.id.au/

More information about the whatwg mailing list