我正在开发一个gui工具,可以选择文本框,拖动文本框并编辑内容.考虑在绘图程序(如powerpoint)中进行文本编辑.我对文本选择有一些非常具体的要求.我需要确保在其中一个框中选择文本时,选择不会扩展到其他相邻框中的文本.
好消息是有一种方法可以做到这一点,坏消息是它只是IE,我需要为Chrome找到解决方法.
仅在Internet Explorer中受支持.允许选择在元素内开始; 但是,选择将包含在该元素的边界内.
我猜测解决方法需要做一些事情,比如监听selectstart,selectchange事件,调用preventDefault(),并手动操作选择对象.
任何想法赞赏;)
更新:这是一个大多数工作的小提琴.错误是,我需要以某种方式阻止Ctrl-A,并且在窗口外选择和释放鼠标会使其他文本暂时无法选择.不确定如何解决这些问题,任何人?提示风滚草......
HTML
<div id="one" class="textbox">qwe qweqwe <b>werwesd ewrwer</b> fsdfdsrwe fdsfsdf erertre fsdfsdf</div>
<div id="two" class="textbox">dsgdfs dfgdsf dfgdfg dfgdfs <i>dfsgsdf</i> dfsgdfsg</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.textbox {
position: absolute;
-webkit-user-select: text;
width: 250px;
font-size: 30px;
border: 1px solid black;
}
#one { left: 150px; top: 150px; }
#two { left: 450px; top: 250px; }
Run Code Online (Sandbox Code Playgroud)
JS
document.addEventListener('mousedown', mousedown, false);
document.addEventListener('mouseup', mouseup, false);
// While selecting disallow selection of other text.
function mousedown(event) {
console.log('mousedown', …Run Code Online (Sandbox Code Playgroud) 为什么下面的代码使用1.2GB的内存来执行?无论传递给 generate_series 的数字如何,我都希望内存使用量相对平稳,相反它正在稳步增加。请 - 告诉我我做错了什么!
if (!PQsendQuery(conn, "select generate_series(1, 10000000)"))
exit(1);
int i, value;
while (res = PQgetResult(conn)) {
for (i = 0; i < PQntuples(res); i++) {
value = atoi(PQgetvalue(res, i, 0));
}
PQclear(res);
}
printf("%d\n", value);
PQfinish(conn);
Run Code Online (Sandbox Code Playgroud)
我已将本示例的完整源代码放在pastebin 上。