我使用 jqueryUI 对话框找到了自己的解决方案。所以分享一下。它可能对其他试图实现相同目标的人有所帮助。需要包含 jquery 和 jqueryUI 库。稍后使用以下代码和脚本。
<div id="text">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus aliquam eros non odio fringilla, placerat feugiat turpis gravida. Vivamus ac porttitor metus. Aliquam a facilisis erat. Morbi a nisi nibh. Vestibulum volutpat gravida eros. Ut in tortor at magna gravida consectetur eget at dui. Vivamus eget justo eu libero mattis interdum. Morbi iaculis lorem ut felis commodo accumsan. Phasellus a tristique tellus, at lobortis neque. Proin quis tempus est. Morbi dignissim tempor justo at fringilla. Proin sit amet tortor mattis, euismod est eu, volutpat mauris.</p>
</div>
脚本
if (!window.mSelect) {
mSelect = {};
}
mSelect.Selector = {};
mSelect.Selector.getSelected = function () {
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;
};
mSelect.Selector.mouseup = function () {
var st = mSelect.Selector.getSelected();
if (st != '') {
$("#dialog-modal").dialog({
modal: true,
title: 'You selected ' + st,
buttons: {
"Add": function () {
}
}
});
}
else {
alert("select some text");
}
};
$(function () {
$('#text').bind("mouseup", mSelect.Selector.mouseup);
});
在add
函数中,我们可以通过 ajax 发布选中的值。
但是,如果有人有比这个更好的解决方案(显示工具提示而不是对话框),请告诉我。