如何使用 JavaScript 暂时禁用文本选择?

     2023-05-08     45

关键词:

【中文标题】如何使用 JavaScript 暂时禁用文本选择?【英文标题】:How can I disable Text Selection temporarily using JavaScript? 【发布时间】:2010-10-27 20:31:11 【问题描述】:

这是一个有点具体的问题,所以我会直奔主题。

我正在为 Web 应用程序的一部分开发一个简短而简单的拖放例程,尽管拖放位工作正常,但该站点在操作过程中变得非常丑陋,因为浏览器仍然执行默认设置操作和文本选择。

我尝试了一些解决方案,主要涉及从 mousedown 或 click 事件返回 false,虽然它们在某些浏览器中禁用了文本选择,但它们似乎也完全禁用了 mouseup 事件,破坏了脚本的“drop”位并让这个永久浮动图标悬在鼠标周围——不好玩。

我真的不希望文本选择完全消失,我只是想建议浏览器......不要在拖动时这样做,如果这有意义的话。由于我知道受影响的区域(涉及 iframe),我可以轻松地将属性应用于受影响的元素等。如有必要,我可以发布代码,但我正在寻找更多通用解决方案。由于这只是美学问题,我正在寻找适用于大多数浏览器的修复程序,它并不是那么重要。

谢谢!

【问题讨论】:

……冗余标题的攻击开始了,我应该踢自己。 ^_^ 我真的应该知道这里暗示了“以编程方式”。 【参考方案1】:

在 W3C 浏览器中,您可以在 event 对象上调用 preventDefault 方法。 IE 等效项是将returnValue 设置为false

function stopDefault(e) 
    if (e && e.preventDefault) 
        e.preventDefault();
    
    else 
        window.event.returnValue = false;
    
    return false;

编辑:只需重新阅读问题,您可能还希望在处理实际拖动的代码部分中阻止默认操作,而不仅仅是在初始鼠标按下或单击时。

【讨论】:

这行得通,但它似乎杀死了 mouseup 事件。这样做后有没有办法检测按钮何时被释放? mouseup 事件是否附加到被拖动的对象上?如果是这样,请尝试将其附加到文档或窗口。在拖动对象上的 mousedown 事件期间将其附加,然后在 mouseup 处理程序中,再次将其分离。此外,b/c 处理程序将在文档对象的上下文中执行,您需要通过保持对拖动对象的引用来获得创意。 我最终让它工作了。我在 iFrame 中开始拖动,然后在容器框架中的鼠标下方绘制对象。 (这样做的目的是将对象“拖放”到另一个帧上,很有趣。)因此,我需要在所有帧(包括父帧)中监听 mouseup,而不是在起始 iFrame 中监听 mouseup。 (iFrame 监听通过调用父级的放置处理函数及其位置等来响应。)这很有效,并且似乎对所有浏览器都很好。非常感谢! 没问题。我最近一直在“重新发明***”,比如拖放、调整大小、可折叠容器等。当然,所有常见框架都做得很好的东西,但我想学习如何去做并扩展我的 js过程中的剁手。最近我自己通过拖放解决了许多相同的问题,我很高兴我可以帮助其他人。 +1 提醒我注意选择预防需要放置在 mouseMove-handler 而不是 mouseDown-handler 中【参考方案2】:

据我所知,拖动的元素必须位于鼠标指针下的其他元素之上。如果它会随着鼠标指针移动,它会阻止页面上的任何选择。

【讨论】:

这似乎不是真的。我正在使用的方法是一个 ghost 方法,我创建了一个对象的虚拟副本来拖动,并且它实际上并没有从旧页面中删除,直到成功放置。

如何暂时禁用滚动?

...述】:我正在使用scrollTojQuery插件,想知道是否可以通过Javascript暂时禁用窗口元素的滚动?我想禁用滚动的原因是,当您在scrollTo动画时滚动时,它会变得非常丑陋;)当然,我可以做一个$("body").css("overflo 查看详情

如何禁用文本选择突出显示

...有CSS标准方法来禁用突出显示效果?我意识到这可以通过JavaScript完成,并且通过谷歌搜索得到了Mozill 查看详情

如何使用 jQuery 禁用文本选择?

】如何使用jQuery禁用文本选择?【英文标题】:HowtodisabletextselectionusingjQuery?【发布时间】:2011-02-1114:26:48【问题描述】:jQuery或jQuery-UI是否有任何功能可以禁用给定文档元素的文本选择?【问题讨论】:可能重复:***.com/questions... 查看详情

如何使用 jQuery 禁用文本选择?

】如何使用jQuery禁用文本选择?【英文标题】:HowtodisabletextselectionusingjQuery?【发布时间】:2011-02-1114:26:48【问题描述】:jQuery或jQuery-UI是否有任何功能可以禁用给定文档元素的文本选择?【问题讨论】:可能重复:***.com/questions... 查看详情

使用 javascript 禁用引导选择选项

】使用javascript禁用引导选择选项【英文标题】:disablebootstrapselectoptionusingjavascript【发布时间】:2017-07-1308:08:55【问题描述】:我尝试使用javascript禁用我的特定引导选择选项。我知道如何禁用“正常选择选项”,但是当使用引导... 查看详情

通过javascript每次点击动态禁用文本选择?

】通过javascript每次点击动态禁用文本选择?【英文标题】:Disabletextselectiondynamicallyperclickviajavascript?【发布时间】:2012-08-1203:55:42【问题描述】:我有一个表格,我添加了一些多项选择功能,其中shift+click在第一次单击和第二次... 查看详情

JavaScript:通过双击禁用文本选择

】JavaScript:通过双击禁用文本选择【英文标题】:JavaScript:Disabletextselectionviadoubleclick【发布时间】:2011-05-0606:31:24【问题描述】:当双击html页面时,大多数浏览器会选择双击的单词(或三次单击的段落)。有没有办法摆脱这种... 查看详情

javascript在网站上禁用(文本)选择(代码片段)

查看详情

如何使用 javascript/jquery 在选择下拉菜单中启用/禁用引导选项

】如何使用javascript/jquery在选择下拉菜单中启用/禁用引导选项【英文标题】:Howtoenable/disablebootstrapoptioninselectdropdownusingjavascript/jquery【发布时间】:2020-08-3008:30:46【问题描述】:我正在尝试禁用特定选项。这是我的代码<selectid... 查看详情

如何禁用提交按钮,直到所有文本字段都已满并选择文件

...sselected【发布时间】:2016-03-0314:19:09【问题描述】:我是javascript/jquery的新手,所以我可能遗漏了一些明显的东西,但我找到了在所有文本字段都填满之前禁用提交按钮的解决方案,并且我找到了在文件被填充之前禁用它的解决... 查看详情

禁用文本选择并添加例外

...down=\'returnfalse;\'onselectstart=\'returnfalse;\'是否可以通过使用javascript输入textareas和选择来给出异常?如果是的话,你 查看详情

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

...程序中禁用文本选择和复制粘贴。CSS-webkit-user-select:none;JavaScript$(\'body\').on(\'cutcopypaste\', 查看详情

如何禁用 TextArea (JavaFX) 中的文本选择?

】如何禁用TextArea(JavaFX)中的文本选择?【英文标题】:HowtodisabletextselectioninTextArea(JavaFX)?【发布时间】:2020-08-2304:36:57【问题描述】:我想禁用用户在JavaFX的textArea中选择文本的功能。如何做到这一点?【问题讨论】:【参考方... 查看详情

如何使用jquery禁用列表框中的多项选择?还是javascript?

我的页面上有一个列表框。<td><%=Html.ListBox("listServiceTypes",Model.ServiceTypeListAll,new{style="width:500px;height:200px;"})%>我需要禁用从列表框中选择多个项目?我正在做类似选择一项的操作,然后单击删除按钮在页面上从列表框中删... 查看详情

如何使用 Python 暂时禁用键盘输入

】如何使用Python暂时禁用键盘输入【英文标题】:HowtotemporarilydisablekeyboardinputusingPython【发布时间】:2015-03-2622:19:37【问题描述】:我正在使用Python为Windows编写一个简单的程序,该程序利用了time模块。具体来说,我使用time.sleep(... 查看详情

如何使用javascript从网页中获取点击或选择的文本? [复制]

】如何使用javascript从网页中获取点击或选择的文本?[复制]【英文标题】:howtogettheclickedorselectedtextfromthewebpagesusingjavascript?[duplicate]【发布时间】:2020-11-0321:38:00【问题描述】:如何使用javascript从网页中获取点击或选择的文本?... 查看详情

Android:禁用网页视图中的文本选择

...化的内容。对于某些交互(特定于某些dom元素),我使用javascript和WebView.addJavascriptInterface()。现在,我想识别长触摸。不幸的是,onLongTou 查看详情

如何在 WebView [React-Native] 中禁用用户文本选择

】如何在WebView[React-Native]中禁用用户文本选择【英文标题】:HowtodisableusertextselectioninWebView[React-Native]【发布时间】:2017-04-1219:30:33【问题描述】:我试图弄清楚如何在我的ios应用程序的React-NativeWebView中禁用文本选择。在网站上... 查看详情