选择+拖动div或textarea的内容

时间:2010-01-16 15:01:01

标签: javascript prototypejs

当用户点击按钮时,我想选择DIV的内容(如点击并拖动时突出显示)。 (隐藏)div包含需要拖动到浏览器外部的第三方应用程序作为输入的文本。换句话说:我想模拟用户选择textarea的内容,单击并将其拖动到另一个应用程序。

我正在使用PrototypeJS框架,我走到了这一步:

  • 将mousedown观察者放在需要按下的按钮上。

我已经非常努力地搜索了一种在html元素中选择文本的方法,但找不到任何东西。 Prototype API似乎没有一个可以选择textarea或元素内容的好函数。它确实有Form.Element.select(),但它只适用于输入字段。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

根据the answer I gave yesterday对类似的问题,在Prototype中你可以这样做:

$('elId').observer('click', function(e){
  var selectTarget = Event.element(e); // Get the element
  if(selectTarget != null) {
     if(selectTarget.tagName == 'TEXTAREA' || (selectTarget.tagName == "INPUT" && selectTarget.type == "text")) {
         selectTarget.select();
     } else if(window.getSelection) { // FF, Safari, Opera
         var sel = window.getSelection();
         var range = document.createRange();
         range.selectNode(selectTarget);
         sel.removeAllRanges();
         sel.addRange(range);
     } else { // IE
         document.selection.empty();
         var range = document.body.createTextRange();
         range.moveToElementText(selectTarget);
         range.select();
     };
  };
});