10

对于像这样的页面

http://www.answers.com

如果用户双击页面中的任何单词,将出现一个弹出框并显示该单词的定义。

我可以想出一种方法来使用 DOM 脚本来分解页面中的所有单词,然后让它们中的每一个都放在一个单独的“span”元素下......但是如果所有文本都在一个“p”元素,然后“p”元素节点被触发来处理双击事件,但是没有简单的方法来判断点击了哪个单词?

4

2 回答 2

17

您只需将双击事件添加到整个文档,如下所示:

function get_selection() {
    var txt = '';
    if (window.getSelection) {
        txt = window.getSelection();
    } else if (document.getSelection) {
        txt = document.getSelection();
    } else if (document.selection) {
        txt = document.selection.createRange().text;
    }
    return txt;
}

$(document).dblclick(function(e) {
    var t = get_selection();
    alert(t);
});

如果您只希望它适用于选定的段落,您可以将选择器更改为p.myclass或类似的东西。这取决于双击一个单词会在浏览器中突出显示它的事实。老实说,不确定这是否正是 answers.com 的做法。

于 2009-05-18T17:02:49.307 回答
4

你去吧,一篇博客文章描述了你如何使用 jQuery 做到这一点。他的测试实现和你想要的差不多。即双击一个单词从字典中提取定义:

使用jQuery和双击获取数据

于 2009-05-18T17:04:47.120 回答