标签: textselection

如何防止在javascript中双击选择文本

假设我在页面中有一个ul(li)列表:

<ul>
 <li>xxx<li>
 <li>xxx<li>
</ul>
Run Code Online (Sandbox Code Playgroud)

该元素li是可点击和可双击的,它们与这些事件相关联,并且我都return false在这两个事件中.

$('ul li').on('click',function(){
    //do what I want
    return false;
}).on('dblclick',function(){
    //do what I want
    return false;
});
Run Code Online (Sandbox Code Playgroud)

但是当用户双击该元素时,li将选择该文本内的文本.如何防止这种情况?

更新:

现在解决了,我使用以下代码与NiftyDude的css选择器:

$('ul li').on('click',function(){
    //do what I want
    return false;
}).....on('dragstart',function(){return false;}).on('selectstart',function(){return false;});
Run Code Online (Sandbox Code Playgroud)

javascript click textselection dom-events

7
推荐指数
1
解决办法
6960
查看次数

如何从电子桌面应用程序中获取当前选定的文本?

我正在用电子构建桌面应用程序.作为其功能的一部分,我希望在特定事件触发时获取当前选定的文本.这个文本可以是任何地方 - 网页,pdf,崇高等.

有什么方法可以做到这一点吗?

textselection node.js electron

7
推荐指数
1
解决办法
1369
查看次数

Selection selectfinish/selectend 事件应该如何实现?

每当用户完成选择 \xe2\x80\x94 时,我都会做一些事情,基本上,在每个事件mouseup之后的第一个事件上selectstart,我认为页面上的 \xe2\x80\x94 。我想将这个选择包装在一个元素中,通过 CSS 设置样式。我推测 Selection API 为此提供了一个事件;然而,似乎并非如此。

\n

我不只是简单地监听,mouseup因为我特别寻找它来处理浏览器查找功能产生的选择(“在此页面查找\xe2\x80\xa6”; \xe2\x8c\x98+ f) 。

\n

\r\n
\r\n
let selContainer = document.createElement(\'span\')\nspan.classList.add(\'user-selection\')\n\nconst wrapSelection = () => {\n  window.getSelection().getRangeAt(0).surroundContent(selContainer)\n}\n\n\n/*                   \xe2\x94\x8f\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x93\n                     \xe2\x94\x83                          \xe2\x94\x83\n                     \xe2\x94\x83  The Selection API only  \xe2\x94\x83\n                     \xe2\x94\x83  affords these events:   \xe2\x94\x83\n                     \xe2\x94\x83                          \xe2\x94\x83\n                     \xe2\x94\x83  - selectionchange       \xe2\x94\x83\n                     \xe2\x94\x83  - selectstart     \xe2\x94\x8f\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\xab\n                     \xe2\x94\x83                    \xe2\x94\x83issue\xe2\x94\x83\n                     \xe2\x94\x97\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\xbb\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x9b\n\n*/document.addEventListener(\'selectfinish\', wrapSelection)/*\n                             \xe2\x94\x97\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\xb3\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x9b\n                                  \xe2\x94\x83\n                                  \xe2\x94\x83\n                               no such\n                                event                                                                                                                                                                                                        */
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

javascript event-handling textselection dom-events observable

7
推荐指数
1
解决办法
2666
查看次数

如何使用 Safari 实现干净的文本选择?

请参阅Sam Harris 的一篇博客文章中的文本选择行为。将其与 Bear 应用程序博客上的这篇文章进行比较。在 Firefox 上,没有区别。然而,在 Safari 上,彭博文章中的文本选择无处不在,而 Sam Harris 上的博客文章仍然设法简洁。

如何控制文本选择行为以始终只覆盖实际文本而不溢出?

示范

html css cross-browser textselection

7
推荐指数
1
解决办法
190
查看次数

为什么MotionEvent模拟不起作用?

在练习应用程序的其中一个视图中,我尝试以编程方式执行文本选择.

我能够(以编程方式)输入"文本选择模式",它由视图左上角的CursorControllers(AKA句柄)可视地指示.

如果我手动拖动右边的CursorController,然后再次单击它(在模拟器中),它按预期工作(完美),显示一条简短的消息:"文本复制到剪贴板".

但是当我尝试以编程方式拖动正确的CursorController时,没有任何反应.

我尝试这样做的方法是模拟MotionEvent.在视图中,我打电话给:

  event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
  MainActivity.onTouch(this, event);
Run Code Online (Sandbox Code Playgroud)

在MainActivity中我当然实现了OnTouchListener:

@Override
public boolean onTouch(View v, MotionEvent event) { // called BEFORE button's onTouchEvent()
    Log.v("MainActivity::onTouch()", describeEvent(v, event));
    switch (event.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
        case MotionEvent.ACTION_UP: 
            if (!v.hasFocus()) { 
                v.requestFocus(); 
             } 
             break; 
    } 
    return false; 
}
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,仅仅从onTouch返回'false',Android就会继续寻找另一个UI对象来使用MotionEvent对象,最终到达我的视野.

为什么不这样呢?

我必须遗漏一些非常基本的东西......

events android touch textselection

6
推荐指数
1
解决办法
4105
查看次数

当且仅当区域在Emacs中处于活动状态时,标记是否处于活动状态?

"标记是否处于活动状态"只是意味着与Emacs中的"区域处于活动状态"相同,无论是否启用了瞬态标记模式?因此激活标记与激活区域相同?

我感到很困惑,因为在很多地方似乎可以互换地使用两个短语,而region-active-p的定义似乎采取的立场是,当且仅当启用了瞬态标记模式且标记处于活动状态时,该区域才被认为是活动的.

(defun region-active-p ()
  "Return t if Transient Mark mode is enabled and the mark is active.

Some commands act specially on the region when Transient Mark
mode is enabled.  Usually, such commands should use
`use-region-p' instead of this function, because `use-region-p'
also checks the value of `use-empty-active-region'."
  (and transient-mark-mode mark-active))
Run Code Online (Sandbox Code Playgroud)

是什么关系

  • 区域突出显示(即区域的背景颜色不同)

  • 地区活跃

  • 马克是活跃的

当启用瞬态标记模式时,以及何时禁用它?

emacs elisp selection textselection region

6
推荐指数
1
解决办法
912
查看次数

如何防止用户使用CSS复制某个div的文本?

我知道可以使用以下CSS禁用用户文本选择。

   .unselectable{
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    }
Run Code Online (Sandbox Code Playgroud)

但是当我有以下html时:

<p>selectable text 1</p>
<p class="unselectable">unselectable text</p>
<p>selectable text 2</p>
Run Code Online (Sandbox Code Playgroud)

用户仍然可以通过从页面的顶部(可选文本1)到页面的底部(可选文本2)进行选择来复制无法选择的文本。有什么方法可以防止这种情况?谢谢。

html css highlighting selection textselection

6
推荐指数
1
解决办法
4181
查看次数

使用JS禁用混合应用程序中的文本选择和复制粘贴

我试图通过使用以下代码禁用文本选择和复制粘贴在phonegap应用程序中.

CSS

-webkit-user-select:none;
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$('body').on('cut copy paste',function(e){e.preventDefault();});
Run Code Online (Sandbox Code Playgroud)

它适用于所有操作系统平台,包括adroid 4.4+,但在4.1和4.2上存在问题.请帮忙.

两者都不支持android 4.1.2和4.2.1.

[测试Micromax帆布4和三星galaxy s2]

copy paste textselection cordova

6
推荐指数
1
解决办法
9227
查看次数

带有文本选择控件的浮动工具栏

我在网上研究无济于事.我的应用程序需要一个显示在所选文本上方的浮动工具栏,因为在特定情况下无法访问默认文本选择控件,并且它们在我的活动中也显示奇怪的状态,并且具有半透明状态栏且没有操作栏.我从Google的设计指南(更准确地说是从这里)中找到了这个,并且没有提到如何做到这一点.

浮动工具栏

如果有人知道如何做到这一点,或者熟悉一个能够做到这一点的图书馆,我将非常感激.

android toolbar textselection material-design

6
推荐指数
1
解决办法
1632
查看次数

android webview:阻止文本选择actionMode actionBar

我想在webView中保留文本选择,同时防止显示actioMode的任何上下文菜单.既不是新浮动的也不是旧的actionBar,只是选择句柄,当然还有选择行为.

挂钩startActionMode中的actionModeCallback允许我清除回调onCreateActionMode中菜单中的所有项目.

这在android 6上工作正常,因为根本不显示空的浮动菜单,并且保留了actionMode文本选择行为.

不幸的是,在android <6这会留下一个空的actionBar,如何完全删除它?

有没有一个干净的方法来获得这个?我正在使用ReactNative应用程序,但使用自定义扩展webview,我也可以访问mainActivity代码.

textselection android-webview android-actionbar android-actionmode react-native

6
推荐指数
1
解决办法
1696
查看次数