Javascript/jQuery Load 函数,文本选择
Javascript/jQuery Load function, text selection
我的网站上有一个控制台,它显示了一个日志文件,我已经设置了它,以便它每 500 毫秒刷新一次。
jQuery(document).bind("ready", function() {
$("#console").animate({ scrollTop: $(document).height() }, 1000);
function doStuff() {
$( "#console" ).load("console/getlog.php");
$('#console').scrollTop($('#console')[0].scrollHeight);
}
setInterval(doStuff, 500);
});
这工作正常,但是当我尝试在控制台中选择一些文本时,问题就出现了。每次更新时,我的选择都会被取消
我能做些什么来解决这个问题?
$( "#console" ).append();
,而不是使用 $( "#console" ).load("console/getlog.php");
来更新主机。 这应该可以防止整个事情重新加载并删除您的选择。
您可以执行类似append(getLog());
的操作,其中getLog()
是返回日志内容的函数。 追加可用于硬编码内容(文本/html)或函数的结果。
有关 .append() 的更多信息,请单击此处
也在这里 - jQuery API 文档
就像MelanciaUK建议的那样,当控制台处于焦点时暂停doStuff()
。
退出(因此控制台在您悬停时停止更新)或在鼠标按下/鼠标向上检测到该焦点,这不可用,因为您几乎没有时间按 Cmd + C 来保存您的选择。
一些肮脏的例子:http://jsfiddle.net/ZEW5s/(鼠标向上后更新为暂停:http://jsfiddle.net/ZEW5s/1/)
不过,tymeJV 建议使用 setTimeout
而不是setInterval
是一个很好的建议。
我能想到的唯一解决方法是延长延迟时间,以便您有时间选择文本。
答案不多,但我无法评论,所以就在这里。有一些方法可以访问和操作选择,尽管如果我没记错的话,它们取决于浏览器。看看这个:
https://developer.mozilla.org/en-US/docs/Web/API/Selection
我建议更改 doStuff() 以保存当前选择,并尝试在加载后应用它。
- 或者在表单上选择默认选项文本(选择1)
- Javascript:包括特殊字符的文本选择
- 大写--文本区域中的文本选择
- 点击
- 项目时的文本选择
- 通过 javascript 在每次点击时动态禁用文本选择
- 文本框的 CSS 文本选择覆盖
- 单击“img”源时,文本选择未清除
- 链接内的内容可编辑块,如何防止重定向,但让文本选择插入符号位置更改
- 当我单击画布并拖动鼠标时,光标将变为文本选择光标.我该如何防止这种情况发生
- 重新启用文本选择(Opera、webkit等)
- 绝对元素后面的元素上的文本选择
- 禁用JavaScript中的文本选择器
- 从网站中删除文本选择限制的脚本
- Javascript/jQuery Load 函数,文本选择
- HTML 浏览器的“文本”选择:选择整个单词(如在 iBooks 中)
- 锁定页面文本选择
- 如何删除文本选择中的子元素
- 如何将选定的“文本”选择框发送到按钮上的函数,以便使用角度进行 ng 单击
- 锤击.JS桌面文本选择和滑动冲突
- j查询启用/禁用文本选择错误