Skip to content

Commit 978e215

Browse files
Implement function around attribute
1 parent e000b59 commit 978e215

File tree

1 file changed

+39
-4
lines changed

1 file changed

+39
-4
lines changed

src/lib.rs

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,25 @@ impl Executor {
981981
element.set_id(&self.pop_stack().get_string());
982982
}
983983

984+
"get-attribute" => {
985+
let name = self.pop_stack().get_string();
986+
let element = self.pop_stack().get_element();
987+
self.stack.push(Type::String(
988+
element
989+
.get_attribute(&name)
990+
.expect("チノちゃん「うるさいですね...」"),
991+
));
992+
}
993+
994+
"set-attribute" => {
995+
let value = self.pop_stack().get_string();
996+
let name = self.pop_stack().get_string();
997+
let element = self.pop_stack().get_element();
998+
element
999+
.set_attribute(&name, &value)
1000+
.expect("チノちゃん「うるさいですね...」");
1001+
}
1002+
9841003
"create-element" => {
9851004
let name = self.pop_stack().get_string();
9861005
let window = web_sys::window().expect("no global `window` exists");
@@ -1058,15 +1077,31 @@ impl Executor {
10581077

10591078
"get-style" => {
10601079
let name = &self.pop_stack().get_string();
1061-
let element: HtmlElement = self.pop_stack().get_element().dyn_into::<HtmlElement>().expect("You'are an idiot!");
1062-
self.stack.push(Type::String(element.style().get_property_value(name).expect("チノちゃん「うるさいですね...」")));
1080+
let element: HtmlElement = self
1081+
.pop_stack()
1082+
.get_element()
1083+
.dyn_into::<HtmlElement>()
1084+
.expect("You'are an idiot!");
1085+
self.stack.push(Type::String(
1086+
element
1087+
.style()
1088+
.get_property_value(name)
1089+
.expect("チノちゃん「うるさいですね...」"),
1090+
));
10631091
}
10641092

10651093
"set-style" => {
10661094
let value = &self.pop_stack().get_string();
10671095
let name = &self.pop_stack().get_string();
1068-
let element: HtmlElement = self.pop_stack().get_element().dyn_into::<HtmlElement>().expect("You'are an idiot!");
1069-
element.style().set_property(name, value).expect("チノちゃん「うるさいですね...」");
1096+
let element: HtmlElement = self
1097+
.pop_stack()
1098+
.get_element()
1099+
.dyn_into::<HtmlElement>()
1100+
.expect("You'are an idiot!");
1101+
element
1102+
.style()
1103+
.set_property(name, value)
1104+
.expect("チノちゃん「うるさいですね...」");
10701105
}
10711106

10721107
// If it is not recognized as a command, use it as a string.

0 commit comments

Comments
 (0)