给高亮搜索插件自动填入选中文本

给高亮搜索插件自动填入选中文本

see https://ld246.com/article/1729773295142

必须设置快捷键 ctrl+f​ 才行

(()=>{
// 等待元素渲染完成后执行
function whenElementExist(selector) {
    return new Promise(resolve => {
        const checkForElement = () => {
            let isExist = false;
            if (typeof selector === 'function') {
                isExist = selector();
            } else {
                isExist = document.querySelector(selector);
            }
            if (isExist) {
                resolve(true);
            } else {
                requestAnimationFrame(checkForElement);
            }
        };
        checkForElement();
    });
}
async function fill_search_text(_t) {
    if (_t.length == 0) {
        return
    }
    whenElementExist('.b3-text-field.fn__size200').then(() => {
        const input = document.querySelector('.b3-text-field.fn__size200');
        input.value = _t
        input.dispatchEvent(new Event('input'));
        setTimeout(()=>{
            document.querySelectorAll('.icon--14_14')[1]?.parentElement?.click();
        }, 400);
    })
}

function isMac() {
    return navigator.platform.indexOf("Mac") > -1;
}

// 事件监听
document.addEventListener('keydown', async (event) => {
    const ctrlKey = isMac() ? event.metaKey : event.ctrlKey;
    const controlKey = isMac() ? event.ctrlKey : event.metaKey;
    if (ctrlKey && !controlKey && !event.shiftKey && !event.altKey && event.key === 'f') {
        //event.preventDefault(); // 防止快捷键默认行为
        fill_search_text(window.getSelection().toString().trim())
    }
});

})()

image.png

留下你的脚步
推荐阅读