//- web_share.pug style. #web-share-btn { background: var(--btn-bg); color: var(--btn-color); border: none; padding: 0.5rem 1rem; border-radius: 8px; cursor: pointer; transition: all 0.3s; } #web-share-btn:hover { background: var(--btn-hover-color); } #web-share-component button#web-share-btn(title='分享本文') i.fas.fa-share-alt span= ' ' + _p('分享') script. (() => { const setupWebShare = () => { const btn = document.getElementById('web-share-btn') if (!btn) return // 点击事件处理 btn.addEventListener('click', async () => { if (navigator.share) { try { await navigator.share({ title: '!{page.title || config.title}', text: '!{truncate(strip_html(page.content), {length: 100})}', url: window.location.href }) } catch (err) { console.log('分享取消或失败', err) } } else { // 降级处理:比如弹出提示或复制链接 const shareData = window.location.href navigator.clipboard.writeText(shareData).then(() => { btf.snackbarShow('系统不支持分享,已将链接复制到剪贴板') }) } }) } // 考虑到 Butterfly 的 Pjax 跳转,需要重新绑定 setupWebShare() document.addEventListener('pjax:complete', setupWebShare) })()