/
wasmblock-dom.js
29 lines (29 loc) · 1.21 KB
/
wasmblock-dom.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
WasmBlock((module) => ({
wasmblock_dom_create_element: function(targetPtr,elPtr, idPtr) {
let targetName = module.$copyCStr(targetPtr);
let elementType = module.$copyCStr(elPtr);
let id = module.$copyCStr(idPtr);
var el = document.createElement(elementType);
el.setAttribute('id',id);
document.querySelector(targetName).append(el);
},
wasmblock_dom_set_attribute: function(targetPtr,attrPtr,valPtr) {
let targetName = module.$copyCStr(targetPtr);
let attrName = module.$copyCStr(attrPtr);
let val = module.$copyCStr(valPtr);
document.querySelector(targetName).setAttribute(attrName,val);
},
wasmblock_dom_set_inner_html: function(targetPtr,htmlPtr) {
let targetName = module.$copyCStr(targetPtr);
let html = module.$copyCStr(htmlPtr);
document.querySelector(targetName).innerHTML = html;
},
wasmblock_dom_add_event_listener: function(targetPtr,eventPtr,callbackPtr) {
let targetName = module.$copyCStr(targetPtr);
let eventName = module.$copyCStr(eventPtr);
let callbackName = module.$copyCStr(callbackPtr);
document.querySelector(targetName).addEventListener(eventName,function(e){
module[callbackName](module.$newString(e.target.id));
});
}
}))