[2023.09.24]: 今天差点又交白卷

今天周日,搞定了家里装修的一件事情,周末的事特别多,总算在10点的时候,解决了昨天那个输入焦点设置失败的问题。
在探索Rust编写基于web_sys的WebAssembly编辑器:挑战输入光标定位的实践中,我们总结了设置光标的位置:

selection.remove_all_ranges().unwrap();
selection.add_range(&range);
let div = get_div_element(&e).expect("get div");
range.set_start(&div.first_child().expect("get first child"), pos);
range.set_end(&div.first_child().expect("get first child"), pos);
div.focus();

如果我们在设置光标前,在通过代码的方式增加了节点,比如从

hello

改为

hello

。这个时候,输入焦点的设置就会失效。
解决的方法:

  1. div对象要重新生成
  2. range对象要重新生成
  3. node对象要取到text这一级

今天有点晚了,明天我再整理一下代码,将具体的代码补上。

谢谢大家的关注,欢迎留言讨论。

你可能感兴趣的:(Rust,开发每日一篇,rust)