Crates.io | statue |
lib.rs | statue |
version | 0.3.1 |
source | src |
created_at | 2023-01-03 22:55:58.341783 |
updated_at | 2024-05-21 12:03:59.163757 |
description | Easier way to query selectors for static HTML pages. |
homepage | |
repository | https://github.com/JohnScience/statue |
max_upload_size | |
id | 750481 |
size | 61,353 |
Easier way to query selectors for static HTML pages.
Spare yourself from writing
let window = web_sys::window().unwrap();
let document = window.document().unwrap();
let work_area = document
.query_selector("#work-area")
.unwrap()
.unwrap()
.dyn_into::<HtmlDivElement>()
.unwrap();
let layer_list_div = document
.query_selector("#layer-list")
.unwrap()
.unwrap()
.dyn_into::<HtmlDivElement>()
.unwrap();
let save_files_btn: Rc<HtmlButtonElement> = document
.query_selector("#save-files")
.unwrap()
.unwrap()
.dyn_into::<HtmlButtonElement>()
.unwrap()
.into();
and write
initialize_elements!(
html: "index.html", elements: {
let work_area = Single("#work-area");
let layer_list_div = Single("#layer-list");
let save_files_btn = Single("#save-files", RcT);
}
);
instead.
If you want to have Rc<Window>
or Rc<Documemt>
, or maybe hide them afterwards,
you can do so by supplying optional opts
argument:
initialize_elements!(
html: "index.html",
elements: {
let work_area = Single("#work-area");
let layer_list_div = Single("#layer-list");
let save_files_btn = Single("#save-files", RcT);
},
opts: {
window_ret_ty: Some(RcT),
document_ret_ty: None
}
);
If you want to invoke Document::query_selector_all
, you can use Multi
selector query, though this functionality hasn't been tested thoroughly.