gpt4 book ai didi

Rust wasm : How to access HTMLDocument from web-sys?

转载 作者:行者123 更新时间:2023-12-03 11:29:59 25 4
gpt4 key购买 nike

使用 web-sys crate
我要访问 cookie method来自 HTMLDocument。

我想做这样的事情。这确实行不通。

let window = web_sys::window().unwrap();
let document = window.document().unwrap();
let cookie = document.cookie().unwrap();
//no method named `cookie` found for type `web_sys::features::gen_Document::Document` in the current scope

我需要访问 HTMLDocument 结构而不是 Document 结构。

Cargo.toml 启用了功能。
~snip~
[dependencies.web-sys]
version = "0.3.4"
features = [
"WebSocket",
'Window',
'Document',
'HtmlDocument',
]

根据 API它应该可以在像文档这样的窗口下访问。

它似乎不适用于以下内容:
let html_document = window.html_document().unwrap();

来自 documentation HTMLDocument 应该扩展 Document。

我知道 Rust 中没有继承,但是
我无法将其从 Document 转换为:
let html_document = web_sys::HtmlDocument::from(document);

into 相同功能。

是否可以通过这种方式访问​​ HTMLDocument?

还有其他方法可以使用 web-sys 访问 cookie 吗?

是否有一些正在进行的工作现在不起作用?

最佳答案

您需要的是动态转换,这是通过 wasm_bindgen::JsCast::dyn_into() 完成的。 :

use wasm_bindgen::JsCast;

let window = web_sys::window().unwrap();
let document = window.document().unwrap();
let html_document = document.dyn_into::<web_sys::HtmlDocument>().unwrap();
let cookie = html_document.cookie().unwrap();

还有一个变种 wasm_bindgen::JsCast::dyn_ref() 不消耗原始对象。

关于Rust wasm : How to access HTMLDocument from web-sys?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61635487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com