这可能听起来像一个新手问题,但我想知道当有人使用鼠标在页面上选择给定的文本片段时,我如何触发自定义JavaScript函数.还有什么方法可以在网页上找到所选文字的位置?
更新:为了更清楚,文本片段可以是句子或单词或短语或整个段落的一部分.
所以我在我的Rails应用程序中有一个可信的div,并且需要能够在突出显示时在文本上方显示一个小弹出窗口.目前我的代码有效,并在警报中显示突出显示的文本.但是,该函数在mouseup上执行,因此当您单击div开始键入或突出显示时,它会抛出一个空警报.
这是我的代码:
function getSelected() {
if (window.getSelection) {
return window.getSelection();
}
else if (document.getSelection) {
return document.getSelection();
}
else {
var selection = document.selection && document.selection.createRange();
if (selection.text) {
return selection.text;
}
return false;
}
return false;
};
$("#content-create-partial").bind("mouseup", function(){
var text = getSelected();
if(text) {
console.log(text);
}
else{
console.log("Nothing selected?");
};
});
Run Code Online (Sandbox Code Playgroud)
当用户点击contentEditable div时,如何防止jQuery执行该函数?我只希望它在突出显示实际文本时执行.
也许这是与浏览器相关的问题?我现在在Chrome上...
我想要完成的是允许用户使用光标保存他们在页面上选择(突出显示)的文本.
我有javascript/jQuery/ajax所有设置......当我通过控制台测试它时它就像一个魅力.
即 - 我选择一些文本,然后运行此命令.
alert(getSelected());
Run Code Online (Sandbox Code Playgroud)
我得到一个包含所选字符的警报弹出窗口.......所以它在理论上有效.
但是 - 当我想使用按钮拨打电话时,发生的事情是文本选择消失了FIRST,因此我无法查看/保存他们选择的内容.
<script>
$('#save').click(function(){
var selected_text = getSelected();
});
</script>
<div id="save"><img src="the_save_button.jpg" height="50" width="50" /></div>
Run Code Online (Sandbox Code Playgroud)
有没有办法在点击/点击"保存"DIV后保持文本选择?
开放给任何和所有解决方案!谢谢!