【问题标题】:Android get selected text on touch selectionAndroid在触摸选择时获取选定的文本
【发布时间】:2012-07-24 10:29:26
【问题描述】:

我试图在选择时在 android 中获取选定的文本。它在触摸设备中不起作用。但它在普通浏览器中运行良好。

if(!window.Kolich) {
   Kolich = {};
}
Kolich.Selector = {};
// getSelected() was borrowed from CodeToad at
// http://www.codetoad.com/javascript_get_selected_text.asp
Kolich.Selector.getSelected = function() {
   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;
}
Kolich.Selector.mouseup = function(e){
   var st = Kolich.Selector.getSelected();
   alert(st);
}

但 Android 触摸选择不适用于此代码.. 请帮助

【问题讨论】:

  • 不工作怎么办?我想当mouseup 在触摸浏览器中触发时,之前的任何选择都可能已被触摸破坏。此外,对于任何 Android 浏览器以及除 IE window.getSelection().toString()。那个 codetoad 的例子很糟糕(返回值不一致:在某些浏览器中它是一个 Selection 对象,在其他浏览器中是一个字符串),我不确定它是如何变得如此流行的。
  • Mouseup 事件未在 android 文本选择中触发
  • 不,我没想到会这样。在最近的 WebKit 浏览器(包括,我认为,最近 Android 版本中的默认浏览器)中,有一个在 document 上触发的 selectionchange 事件。也许这就是你想要的?
  • 我想在文本选择事件(javascript)中获取选定的文本...仅供参考,我是 android 开发新手,我是 UI 开发人员。

标签: javascript android events touch


【解决方案1】:

最新的 WebKit 浏览器,包括最新版本的 Android 中的默认浏览器,支持 Document 节点上的 selectionchange 事件。此事件在 Opera 或 Mozilla 中不存在(但在 IE 5.5 版本中已存在)。

示例代码:

document.onselectionchange = function() {
    alert( window.getSelection().toString() );
};

【讨论】:

  • 我不会在没有测试的情况下断言这一点,但我现在没有方便的 Android 设备来测试它。
猜你喜欢
  • 2010-11-19
  • 2016-08-05
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
相关资源
最近更新 更多