web-dom

DOM access for web assembly * no magic * no abstractions * no code generation * api generated from webidl * technology agnostic

```toml [package] name = "helloworld" version = "0.0.1" edition = "2018"

[lib] crate-type =["cdylib"]

[dependencies] web-dom = "0.0.3" rust use web_dom::*;

[no_mangle]

pub fn main() -> () { console::log("hello world") } console cargo build --target wasm32-unknown-unknown --release html

```

See it working here

Alert

```rust use web_dom::*;

[no_mangle]

pub fn main() -> () { window::alert(window(),"hello world!"); } ```

See it working here

Canvas

```rust use web_dom::*;

[no_mangle]

pub fn main() -> () { let doc = window::getdocument(window()); let canvas = document::queryselector(doc,"#screen"); let ctx = htmlcanvaselement::getcontext(canvas,"2d"); canvasrenderingcontext2d::fillrect(ctx,0,0,50,50); } ```

See it working here

Events

```rust use web_dom::*;

[no_mangle]

pub fn callback(listener:EventListener,event:Event) -> () { let input = document::queryselector(document(),"input"); let msg = htmlinputelement::getvalue(input); window::alert(window(),&msg); }

[no_mangle]

pub fn main() -> () { let btn = document::queryselector(document(),"button"); let listener = createeventlistener(); eventtarget::addevent_listener(btn,"click",listener); } ```

See it working here