AnkiDriod点击任意单词 自动调用欧路词典查询

试试:

<script type="text/javascript">
    function setDefinition() {
        // 原函数逻辑,这里假设没有实际代码
    }

    function setChinese() {
        // 原函数逻辑,这里假设没有实际代码
    }

    document.addEventListener('click', function (e) {
        // 获取点击位置的单词
        var word = getWordAtPoint(e.clientX, e.clientY);
        if (word) {
            // 调用 eudic-es://dict/${word}
            var eudicEsUrl = `intent:peek#Intent;action=colordict.intent.action.SEARCH;category=android.intent.category.DEFAULT;type=text/plain;component=com.eusoft.eshelper/com.eusoft.dict.activity.dict.LightpeekActivity;scheme=eshelper;S.EXTRA_QUERY=${word};end`;
            window.location.href = eudicEsUrl;
        }
    });

    function getWordAtPoint(x, y) {
        if (document.caretRangeFromPoint) {
            var range = document.caretRangeFromPoint(x, y);
            var textNode = range.startContainer;
            var text = textNode.data;
            var position = range.startOffset;

            // 向前和向后扫描,直到找到单词的边界
            var start = position, end = position;
            while (start > 0 && /\S/.test(text[start - 1])) {
                start--;
            }
            while (end < text.length && /\S/.test(text[end])) {
                end++;
            }

            return text.substring(start, end);
        }
        return null;
    }
</script>