我将此方法应用于<textarea></textarea>
元素,但我想返回用户选择的html/text
。
$('.wysiwyg textarea').live('select',function(text){
console.log(text);
});
我怎么能用这种方法呢?
答案 0 :(得分:2)
在这里找到一些有用的代码:
http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html
function getSelected(){
var t = '';
if(window.getSelection){
t = window.getSelection();
}else if(document.getSelection){
t = document.getSelection();
}else if(document.selection){
t = document.selection.createRange().text;
}
return t.toString();
}
所以你可以这样做:
$('.wysiwyg textarea').live('select',function(){
var text=getSelected();
console.log(text);
});
如下所示:
答案 1 :(得分:1)
您可以使用:
function SelectText(element) {
var text = document.getElementById(element);
if ($.browser.msie) {
var range = document.body.createTextRange();
range.moveToElementText(text);
range.select();
} else if ($.browser.mozilla || $.browser.opera) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(text);
selection.removeAllRanges();
selection.addRange(range);
} else if ($.browser.safari) {
var selection = window.getSelection();
selection.setBaseAndExtent(text, 0, text, 1);
}
}
最后相应地绑定函数
这应该足以让你入门http://jsfiddle.net/TXQmC/11/ 它有点晚了,所以我只为firefox做了完整的绑定,因为你使用的是。
答案 2 :(得分:1)
我不想从某些浏览器返回空字符串,因此我花了几个小时更新了选择功能。经测试可与IE,Chrome,Firefox,Safari,Opera配合使用。真的希望jQuery有这个内置所以我不必乱用它。
function getSelected() {
var text = "";
if (window.getSelection
&& window.getSelection().toString()
&& $(window.getSelection()).attr('type') != "Caret") {
text = window.getSelection();
return text;
}
else if (document.getSelection
&& document.getSelection().toString()
&& $(document.getSelection()).attr('type') != "Caret") {
text = document.getSelection();
return text;
}
else {
var selection = document.selection && document.selection.createRange();
if (!(typeof selection === "undefined")
&& selection.text
&& selection.text.toString()) {
text = selection.text;
return text;
}
}
return false;
}