JavaScript设置Facebook可编辑发帖框内容后功能异常的解决方法
Bookmarklet inserts text into contenteditable div but breaks backspace/delete functionality (Facebook-specific)
我正在开发一个书签工具,点击它就能向当前激活的文本控件插入指定文本。以下是我目前的实现代码:
(function() { var t="<<< VALUE >>>"; var a=document.activeElement; if(!a) alert("No active element found."); if(!!a) { if(a.nodeName=="TEXTAREA"||a.nodeName=="INPUT") { if(!a.value) a.value=t; else a.value+=t; } else if(a.nodeName=="DIV"&&a.isContentEditable==true) { if(!a.textContent) a.textContent=t; else a.textContent+=t; } } })();
这段代码对textarea和input控件能正常工作,但在可编辑div上存在问题:虽然文本能成功插入,但之后控件的功能会损坏,无法使用退格或删除键。
测试这个问题的最佳场景是Facebook:将焦点放在新建帖子的文本控件上,执行该函数后就会发现退格和删除键完全无法使用。
编辑:经过评论反馈和测试后,确认这确实是Facebook特有的问题,我已经更新了标题。目前仍不清楚导致这个行为的原因,也不知道该如何解决它。
内容的提问来源于stack exchange,提问作者Daniel Schmid
相关产品推荐
相关产品推荐

