iT邦幫忙

1

JS該怎麼寫這樣子的功能

  • 分享至 

  • xImage

當使用者選取一段帶有連結的文字時
可以直接複製成markdown的連結

有點不太確定監聽事件應該放在哪裡
還有被選取的時候該怎麼寫
請教各位前端大師

更新:已經完成 如下



const source = document.querySelector('body');

source.addEventListener('copy', (event) => {
    const selection = document.getSelection();
    var contain=selection.toString().trim();links=$("a").filter(function() {
    return $(this).text() == contain;
})[0].href
    
    if ((typeof links)=="string"){
    
    event.clipboardData.setData('text/plain', `[${contain}](${links})`);}
    event.preventDefault();
});
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
凱恩Kane
iT邦新手 5 級 ‧ 2023-01-24 11:18:45
最佳解答

MDN 文檔上有寫到 Element: copy event

大概是這樣的概念

const source = document.querySelector('div.source');

source.addEventListener('copy', (event) => {
    const selection = document.getSelection();
    event.clipboardData.setData('text/plain', `[連結](${selection.toString()})`);
    event.preventDefault();
});

超讚的說明 感謝 我有去查
不過您的順序是不是寫反了XD
markdown應該 [這裡是文字](這裡放連結)

看了我在那邊想很久哈哈哈

已經完成 更新在文章 感恩 已經選你最佳解答

可以用太棒ㄌ :YAY:

我要發表回答

立即登入回答