- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这几天我一直在研究这个听起来很简单的问题,但我没有看到任何结果。
简而言之,我的问题如下:我想在某个输入字段中选择文本,将焦点移动到另一个字段(或者一般来说是其他元素),但不会丢失我选择的文本。
这种情况可能对应于我在字段中选择文本,右键单击并显示自定义弹出菜单的用例,但不希望失去所选文本的焦点,因为我想做一些操作在先前选择的文本上。
一个小的代码测试示例是(对于我最初的简单场景 - 这里我在第二个输入字段获得焦点时强制选择文本):
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<input type="text" id="text1" size="20" value="Test1"/>
<input type="text" id="text2" size="20" value="Test2"/>
<script>
$('#text2').focus( function (evt) {
var target = $('#text1')[0];
target.select();
console.log('active/focused element: ' + document.activeElement.id);
});
</script>
</body>
</html>
我一直在 SO 和网络上寻找解决方案,但没有看到太多帮助。我不确定这是否真的可能(由于模糊和选择丢失以及焦点和选择之间的联系)。我在 another SO answer 中看到一个名为 preventDeselect
的样式属性- 这不起作用,我什至没有这样的文档或浏览器支持。
我为此苦苦挣扎,希望能得到一些帮助:甚至说我根本做不到,或者可能还有一些办法。
更新:仅作记录,我的用户场景是指文本选择和上下文菜单,这是一个常见的场景(我忘记提到了):只需在此页面(或输入类型字段)中选择一些文本,然后右键单击即可获取浏览器的默认上下文菜单 - 我的场景不同,因为我想使用自定义菜单,但与浏览器的上下文菜单具有相似的行为 - 通常允许选择一些文本,剪切/复制选择,在上下文菜单中导航而不会丢失选定的文本。所以我认为应该可以通过某种方式 :) 使用上下文菜单完成所有这些操作,并且仍然有您的选择。
最佳答案
尝试回答您问题的这一部分:
Such a situation could correspond to a use-case in which I select text in a field, right-click and display a custom popup menu, but do not wish to lose focus of selected text, because I want to do some operations on the previously selected text.
对于这个用例,我创建了一个快速 fiddle : http://jsfiddle.net/4XE9a/1/
注意:我使用与@David 的回答相同的getSelection
函数。
如果您选择任何文本然后右键单击输入,将出现一个自定义弹出菜单。单击“选项 1”。您会发现即使焦点已转移到该 anchor 标记,选择也不会丢失。
但是,对于您关于将焦点转移到另一个文本框的问题的第二部分,@David 的回答就足够了。
更新:(在您的评论之后)
请查看更新后的 fiddle : http://jsfiddle.net/783mA/1/
现在,当您选择一些文本并右键单击输入时,它将显示带有三个选项的自定义弹出菜单。使用 Tab 键导航并按空格键或单击突出显示的选项。 (由于时间不够,我无法实现向上/向下箭头键,但概念保持不变)
这证明了您在评论中提出的问题,即在导航菜单时选择仍然没有丢失。
注意:您希望在视觉上保持选择突出显示并且在单击其他任何地方时不会丢失选择。请注意,这是不可能的,因为文本选择行为是操作系统实现的。浏览器、html 等在这里不起作用。一旦您单击选择上下文之外的任何地方,文本选择就会丢失。这是因为只要您点击外面的任何地方,系统就会开始等待新的选择。但是,没有文本表面的控件除外。按钮、滚动条箭头等不会导致选择丢失。
要查看此行为,请在 fiddle 中选择一些文本,然后单击左 Pane 中的任何下拉菜单。文本选择不会丢失,即使在视觉上也是如此。
这就是为什么在上面的新 fiddle 中,我特意使用按钮来演示。
关于javascript - 如何防止在 html 中取消选择模糊(焦点丢失)的选定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20285875/
是否可以使用标准输入/标准输出在 bash 中压缩/解压缩字符串? 我试过了,但显然不支持它? hey=$(echo "hello world" | gzip -cf) echo $hey # ret
我的任务是让一个企业网站适用于 IE7,它必须“足够好”,因此我禁用了任何导致问题的花哨/非必要功能。 其中之一是正在使用的搜索栏,需要进行哪些搜索,我猜测幕后某个地方有某种 JavaScript 用
我有一个执行大量处理的小程序。您可以通过按回车键打印进度。 我实现它的方法是在主线程中完成处理,同时我有一个 pthread 不断循环 getchar() 以等待输入键。 问题是当我完成处理时。发生这
我完全理解 suspendCoroutine 与 suspendCancellableCoroutine 在我的示例中的工作方式。但我想知道为什么 println("I finished") (第 1
我是 QT 的新手。目前在我的项目中我实现了 QFileDialog . 在我的用例中:每当用户选择一个文本文件时,它都会执行 functionA .但是,我发现如果在文件对话框中单击取消,funct
我有代码,仅在用户选择“另存为”时运行。为此并获取我正在使用的文件的新名称 Application.GetSaveAsFilename功能。 我遇到的问题是类型不匹配,同时检查用户是否在他没有这样做时
我的 UILocalNotification 有问题。 我正在用我的方法安排通知。 - (void) sendNewNoteLocalReminder:(NSDate *)date alrt:(NS
祝你有美好的一天 我有一个网站,其中有很多“工具提示”。这些工具提示是在将鼠标悬停在文本的特定部分上时创建的。工具提示是一个 div block ,它显示在网站上所有其他内容的顶部,并且当光标从文本移
我遇到以下问题。每隔 2 秒,程序就会进入 if 语句。在这个 if 语句中,我想要一个计时器,它会在 15 秒后给我一条消息。计时器应延迟 1 秒运行。但是当我用计时器“等待”时,if 语句将再执行
基本上我有以下代码片段, (let [task (FutureTask. fn) thr (Thread. task)] (.start thr) ;;wait for signa
取消正在进行的 ASIHttpRequest 请求的正确位置在哪里?这就是我取消的方式,但是当我 时它继续崩溃在不让请求完成的情况下从一个 View Controller 转移到另一个 View Co
我在我的 winforms 应用程序中使用 BackgroundWorker 来执行另一个类中发生的长时间运行的任务(执行数据库操作)。由于所有工作都是在另一个类中完成的,因此取消并不那么简单。我在另
我正在使用 OneSignal 向我的用户显示通知。通知工作正常,但我注意到,如果我在通知栏中“滑动”取消通知,则通知将永远保留,这是一张显示应用程序图标上的通知的图像,我想在应用程序已打开: 我看到
正在运行的 AsyncTask 的 .cancel(boolean) 方法如何工作?这是文档: Attempts to cancel execution of this task. This atte
我注意到,当我激活约束时,我会立即在该行代码处收到一条警告,指出不能同时满足约束。 我假设布局是在“UI 更新周期”之类的稍后时间点计算的,而不是每次约束都被(取消)激活。因此,在(取消)激活约束的代
这是我创建线程的方式: readFromWebThread = [[NSThread alloc] initWithTarget:self selector:@selector(loadThread:
我目前正在尝试取消与我的数据模型中的对象关联的特定 UILocalNotifications。为此,每个数据对象都有一个唯一标识符,即 NSUUID。 创建 UILocalNotification:
当我提交并单击“确定”时,它会继续,但当我按“取消”时,它仍然会提交。我尝试使用此代码,但提交和取消按钮仍然执行相同的操作。 model.saveForm = function() { var
我有一个警报弹出窗口,当发生特定操作时会出现该弹出窗口。 5 秒后,使用 setTimeout() 隐藏警报弹出窗口。 我遇到的问题是,如果我多次触发弹出窗口,有时后续的弹出窗口会出现但立即消失。我相
我有一些 javascipt (jQuery),其中单击按钮时会淡入 #myDiv,然后使用超时函数在 5 秒后再次淡出。它工作正常,但如果用户在超时内的 fadeOut 函数运行之前再次单击该按钮,
我是一名优秀的程序员,十分优秀!