使用JavaScript,我想从像素位置创建折叠范围,以便在此位置标识的范围之后在文档流中插入新节点.
这可以使用Internet Exporer中的TextRange对象(moveToPoint(x,y)方法)来完成.
我怎么能在FireFox和Webkit中做到这一点?
我可以从document.elementFromPoint(x,y)的位置获取容器元素.但是当位置恰好位于文本节点内时,如何获得有关构建范围所需的文本偏移量的更多信息?
我有一个p带有一些文字的标签,而我正试图制作它,contenteditable但只是双击.当我点击它时,如何防止浏览器将光标放在p上,只有在我双击时才这样做?JQuery的:
p.dblclick(function(e){
p.css("cursor", "text");
})
.focusout(function(){
p.css("cursor", "default");
})
.click(function(e){
console.log('focus p');
e.stopPropagation();
$("body").focus(); // not stopping Chrome from placing cursor
});
Run Code Online (Sandbox Code Playgroud)
我可以在contenteditable默认情况下使其成为假,然后将其设为true dbleclick然后执行,p.focus()但这意味着我无法将光标放在我单击的位置.另一方面,我可以在第一次点击后让它满足,然后等待1.5s for dobuleclick,如果没有发生取消它,但如果它发生了,那么内容将是可编辑的,第二次点击将触发将光标放在正确的位置.然而,它不是那么平滑,并且使这些内容可以在这些1秒半内编辑.
回答:如果有人感兴趣,我继续实施计时器方法,因为我认为没有其他办法...这里是代码
var DELAY = 700, clicks = 0, timer = null;
p.focusout(function(){
p.css("cursor", "default");
p.prop("contenteditable", false);
})
.click(function(e){
clicks++;
p.prop("contenteditable", true);
if(clicks == 1){
timer = setTimeout(function() {
p.prop("contenteditable", false);
//alert("Single Click"); //perform single-click action
clicks = 0; //after action performed, reset counter
}, …Run Code Online (Sandbox Code Playgroud) 在Firefox中,如果我将图像从桌面拖到一个可信的字段中,它将作为base64嵌入到HIGHLIGHTED光标位置.
JSFiddle:http://jsfiddle.net/zupa/YrwsS/
现在在Chrome中,图像由浏览器打开(页面加载,尝试同样的小提琴).
感谢HTML5,您可以捕获drop事件,并使用它捕获图像.但是,如果我停止浏览器默认行为,我不知道用户想要丢弃它的位置.
你能建议一个解决方法吗?
我需要现在就在那里,它包含一个点击只会发生文本HTML块元素:
<div>This is some awesome text</div>
Run Code Online (Sandbox Code Playgroud)
我想获得被点击的信件的位置.限制:无法向div添加其他子项.
任何选择?
我查看了本网站上的其他答案,但发现对我没有任何用处。如果您认为我可能忽略了某些内容,请告诉我!
无论如何,我想根据鼠标位置创建一个范围。我希望它的工作方式与鼠标左键的工作方式完全相同。您在 DOM 中单击,它会放置一个文本光标,您拖动,然后范围对象实时更新选择对象,然后您将获得“选择”。
但是,我找不到让它与任何其他鼠标按钮或键盘键一起使用的方法。
LMB 正在做什么使其具有这种能力?我似乎无法在任何地方找到答案。
有什么建议?
在类似的说明中,是否有可能开发一些可以精确到 DOM 元素 parentNode 的 childNode 中的字符的东西,以便当您将鼠标悬停在控制台上时,该字符显示在控制台中?