文本选择结束事件

// 当文本选择结束事件
// onSelectionEnd((selection) => {
//     console.log(selection);
// });
function onSelectionEnd(callback) {
    let isMouseupListenerActive = false; // 标志变量,用于跟踪是否已经绑定了 mouseup 事件
    const mouseupHandler = (event) => {
            // 获取当前选中的文本
            const selection = window.getSelection().toString().trim();
            if (!selection) {
                // 如果没有选中文本,重置标志变量并移除监听器
                isMouseupListenerActive = false;
                document.removeEventListener('mouseup', mouseupHandler);
                return;
            }

            // 执行回调函数
            if (typeof callback === 'function') {
                callback(selection);
            }

            // 移除 mouseup 事件监听器,并重置标志变量
            isMouseupListenerActive = false;
            document.removeEventListener('mouseup', mouseupHandler);
        };
        document.addEventListener('selectionchange', () => {
        // 如果已经有 mouseup 监听器,直接返回,避免重复绑定
        if (isMouseupListenerActive) return;
        // 标记为已绑定 mouseup 监听器
        isMouseupListenerActive = true;

        // 绑定 mouseup 事件监听器
        document.addEventListener('mouseup', mouseupHandler);
    });
}
image.png

留下你的脚步
推荐阅读