Comments (15)
哦,我知道了,set_html 只会设置 html格式的值,并不会设置纯文本格式的值,而你再次粘贴时,所以粘贴时无内容
你可以使用下方 api,去设置多格式的值
clipboard-rs/examples/multi.rs
Line 14 in 0329c0d
谢谢,亲测可行!😁
from clipboard-rs.
贴下代码demo,然后说一下操作流程吧,我好复现一下
from clipboard-rs.
贴下代码demo,然后说一下操作流程吧,我好复现一下
OK,等我抽空贴下代码 + 视频
from clipboard-rs.
哦,我知道了,set_html 只会设置 html格式的值,并不会设置纯文本格式的值,而你再次粘贴时,所以粘贴时无内容
你可以使用下方 api,去设置多格式的值
clipboard-rs/examples/multi.rs
Line 14 in 0329c0d
from clipboard-rs.
哦,我知道了,set_html 只会设置 html格式的值,并不会设置纯文本格式的值,而你再次粘贴时,所以粘贴时无内容
你可以使用下方 api,去设置多格式的值
clipboard-rs/examples/multi.rs
Line 14 in 0329c0d
好的,谢谢,我研究下😁
from clipboard-rs.
@ChurchTao 大佬,是这样使用吗?我在这样复制的时候粘贴出来的 html 是没有格式的,是纯文本🤔
#[command]
async fn write_html(
manager: State<'_, ClipboardManager>,
text: String,
html: String,
) -> Result<()> {
println!("{text}\n\n\n{html}");
let contents = vec![ClipboardContent::Text(text), ClipboardContent::Html(html)];
manager.context.set(contents).unwrap();
Ok(())
}
iShot_2024-06-25_14.35.08.mp4
from clipboard-rs.
贴下你存储时的逻辑
from clipboard-rs.
贴下你存储时的逻辑
读取:
/**
* 读取 HTML 内容
*/
export const readHTML = async () => {
const html = await invoke<string>(CLIPBOARD_PLUGIN.READ_HTML);
const size = html2text(html).length;
return {
size,
value: html,
};
};
#[command]
async fn read_html(manager: State<'_, ClipboardManager>) -> Result<String> {
Ok(manager.context.get_html().unwrap())
}
写入:
/**
* HTML 内容写入剪切板
*/
export const writeHTML = async (html: string) => {
invoke(CLIPBOARD_PLUGIN.WRITE_HTML, {
text: html2text(html),
html,
});
};
#[command]
async fn write_html(
manager: State<'_, ClipboardManager>,
text: String,
html: String,
) -> Result<()> {
println!("{text}\n\n\n{html}");
let contents = vec![ClipboardContent::Text(text), ClipboardContent::Html(html)];
manager.context.set(contents).unwrap();
Ok(())
}
from clipboard-rs.
html2text 内容看下
from clipboard-rs.
html2text 内容看下
/**
* 得到 HTML 内容的纯文本
* @param html html 内容
*/
export const html2text = (html: string) => {
const divElement = document.createElement("div");
divElement.innerHTML = html;
return divElement.innerText;
};
from clipboard-rs.
我试了一下,原模原样的 text set 回去是正常带换行的。
那么我们就能排除是 API 的问题,是否可以往这个 html2text 上怀疑一下是不是格式发生了什么变化
from clipboard-rs.
我试了一下,原模原样的 text set 回去是正常带换行的。
那么我们就能排除是 API 的问题,是否可以往这个 html2text 上怀疑一下是不是格式发生了什么变化
对哦,我明白了,原来如此,我研究下怎么复制带格式的纯文本,谢谢🥰
from clipboard-rs.
我感觉你把 html 和 text 放两个字段会好一点,你现在应该是其实只在页面上存了一个 html
from clipboard-rs.
我感觉你把 html 和 text 放两个字段会好一点,你现在应该是其实只在页面上存了一个 html
存是我有考虑的,搜索的时候只搜索纯文本会好一些!但是我现在发现了问题所在!
复制内容:
const a = 1;
const b = 2;
剪切板的 html 内容:
<meta charset='utf-8'><div style="color: #abb2bf;background-color: #23272e;font-family: JetBrains Mono, Menlo, Monaco, 'Courier New', monospace, Menlo, Monaco, 'Courier New', monospace;font-weight: normal;font-size: 13px;line-height: 20px;white-space: pre;"><div><span style="color: #c678dd;font-style: italic;">const</span><span style="color: #abb2bf;"> </span><span style="color: #e5c07b;">a</span><span style="color: #abb2bf;"> </span><span style="color: #56b6c2;font-style: italic;">=</span><span style="color: #abb2bf;"> </span><span style="color: #d19a66;">1</span><span style="color: #abb2bf;">;</span></div><div><span style="color: #c678dd;font-style: italic;">const</span><span style="color: #abb2bf;"> </span><span style="color: #e5c07b;">b</span><span style="color: #abb2bf;"> </span><span style="color: #56b6c2;font-style: italic;">=</span><span style="color: #abb2bf;"> </span><span style="color: #d19a66;">2</span><span style="color: #abb2bf;">;</span></div><br></div>
问题出在 1;
后面应该是用 <br />
(或许是 \n
) 做换行处理才对,但是现在并没有,而是直接就是用 div
作为块级元素来完成占满一行!导致取到的 text 没有换行!
或者我可以换一种解决思路,我在 readHTML
的时候调用 readText
把这俩都存起来,或许这个问题就可以解决!
果真如此,这样调用 readText
就可以获取正常带格式的文本!
from clipboard-rs.
我试了一下,原模原样的 text set 回去是正常带换行的。
那么我们就能排除是 API 的问题,是否可以往这个 html2text 上怀疑一下是不是格式发生了什么变化
感谢大佬,终于摆平这个问题了 🥳
from clipboard-rs.
Related Issues (20)
- Abnormal exit HOT 4
- Does the get_image Method Support Windows? HOT 12
- `get_files` Segmentation Fault when there is no files on clipboard HOT 1
- ClipboardContext 能否实现 Clone / Copy ? HOT 5
- Error: `The image format could not be determined` on Win11 HOT 2
- Bug: Cannot paste after writing image to clipboard (on Windows) HOT 2
- Bug: No transparent background for clipboard image read on Windows HOT 1
- Bug: Cannot read clipboard image on MacOS for screenshots taken by certain apps HOT 3
- `set_html()` doesn't update text. HOT 1
- 当写入html时,在Windows上长度似乎是有限制的,并且会被自动截断。截断的长度不固定 HOT 1
- 如何计算图像的哈希值? HOT 6
- 如何获取复制内容的 app 来源 HOT 9
- 在微信选中文字就会触发 `on_clipboard_change` HOT 4
- 如何触发富文本的复制 HOT 17
- linux 下 get_files()一直拿不到结果 HOT 8
- [bug] windows 系统 html 写入剪切板的问题 HOT 12
- 设置剪切板时图片失真,像素偏移 HOT 16
- 部分应用中复制时会触发两次on_clipboard_change HOT 4
- [bug] windows 复制内容频繁崩溃 HOT 17
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from clipboard-rs.