.getSelection()

发布于 2024-12-04 16:13:26 字数 559 浏览 0 评论 0原文

HTML 代码--

<script language="javascript" type="text/javascript" src="js/jquery-1.4.2.min.js"></script>

<script language="javascript" type="text/javascript" src="js/jquery.field.selection.js"></script>

    <div id="copy">Copy</div>
        <textarea....id="t">

jquery---

$(docu.....
$('#copy').click(function(){
var range = $('#TextArea').getSelection();
alert(range.text);
});

});

当按下#copy 按钮时,警报不会显示#t 中选定的文本。它是空白的。

我需要从文本区域中选择的文本

HTML code--

<script language="javascript" type="text/javascript" src="js/jquery-1.4.2.min.js"></script>

<script language="javascript" type="text/javascript" src="js/jquery.field.selection.js"></script>

    <div id="copy">Copy</div>
        <textarea....id="t">

jquery---

$(docu.....
$('#copy').click(function(){
var range = $('#TextArea').getSelection();
alert(range.text);
});

});

When the #copy button is pressed the alert does not show the selected text in #t. It comes in blank.

I need the selected text from the textarea

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

不再让梦枯萎 2024-12-11 16:13:26

您的代码未运行,因为此语句失败

var range = $('#TextArea').getSelection();

在您提供的标记中没有任何 TextArea 作为 ID,因此脚本遇到错误并且不会继续执行。

如果您将警报放在顶部,我确信警报框会弹出。
IE

$('#copy').click(function(){
    alert(''); //this will work
    var range = $('#TextArea').getSelection();
    alert(range.text);
});

Your code is not running because, this statement fails

var range = $('#TextArea').getSelection();

There is nothing as TextArea as ID in the markup you provided, so the script encounters an error and does not continue beyond it.

If you place the alert at the top part, I am sure the alert box will pop up.
i.e

$('#copy').click(function(){
    alert(''); //this will work
    var range = $('#TextArea').getSelection();
    alert(range.text);
});
权谋诡计 2024-12-11 16:13:26

getSelection 是文档的一个方法,所以你应该这样做:

var range = document.getSelection();

还要注意,你必须在 IE 中使用 document.selection.createRange() 所以一切都会变得有点复杂。
请查看此示例了解更多信息。你最终会需要一个像这样的函数:

function getSelectedText(){
  if(document.all){
    var selection = document.selection;
    var newRng = selection.createRange();
    newRng.select();
    return newRng.htmlText;
  }else{
    return document.getSelection();
  }
}

它应该返回选定的文本并在所有主要浏览器中工作。

编辑:
刚刚看到您正在使用某种 jquery 插件(也许)应该使您的代码正常工作。问题是:

在你的html中,textarea的id是“t”:

<textarea....id="t">

但是在你的javascript中,你试图获取id“TextArea”的选择:

$('#TextArea').getSelection();

请将你的textarea的id更改为“TextArea”(或反过来)看看会发生什么。

getSelection is a method of the document, so you should do:

var range = document.getSelection();

also note that you'll have to use document.selection.createRange() in IE so everything gets a bit complicated.
take a look at this example for more information. you'll end up needing a function like this:

function getSelectedText(){
  if(document.all){
    var selection = document.selection;
    var newRng = selection.createRange();
    newRng.select();
    return newRng.htmlText;
  }else{
    return document.getSelection();
  }
}

wich should return the selected text and work in all major browsers.

EDIT:
just saw you're using some kind of jquery-plugin that (maybe) should make your code work. the problem is:

in your html, the id of the textarea is "t":

<textarea....id="t">

but in your javascript, you're trying to get the selection of id "TextArea":

$('#TextArea').getSelection();

please change the id of your textarea to "TextArea" (or the other way around) and see what happens.

谈下烟灰 2024-12-11 16:13:26

我不确定这个问题,但如果您需要获取 textarea 值,只需使用 val jQuery 方法:

$('#copy').click(function(){
  var range = $('#t').val();
  alert(range);
});

I'm not sure about the question, but if you need to get the textarea value, just use the val jQuery method:

http://api.jquery.com/val/

$('#copy').click(function(){
  var range = $('#t').val();
  alert(range);
});
灯角 2024-12-11 16:13:26

您可以更改 id="t" 或将 #TextArea 更改为 #t 以获取 html 标记中的文本区域。

但我不知道你正在使用什么插件或者它想要什么。

Either you change your id="t" or you change #TextArea to #t to get the textarea you have in your html markup.

But I have no idea what plugin that you are using or what it want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文