添加链接元素时段落分隔符为 2
Paragraph breaks in 2 when adding link element
我只在 Firefox 中遇到这个棘手的问题:当我向 contentEditable 段落添加链接元素时,有时会将段落分成 2 或 3 个。这不会显示任何错误,有时需要几秒钟。代码如下:
function changeSelectedText(type,text) {
var selObj = window.getSelection();
var selRange = selObj.getRangeAt(0);
var newElement = document.createElement(type);
if(type == "a") {
newElement.setAttribute('href', text.toLowerCase());
newElement.setAttribute('target', "_blank");
} else if(type == "span"){
newElement.setAttribute('class', "big");
}
var documentFragment = selRange.extractContents();
newElement.appendChild(documentFragment);
selRange.insertNode(newElement);
var range = document.createRange();
range.selectNodeContents(newElement);
selObj.removeAllRanges();
selObj.addRange(range);
}
添加跨度效果很好,但对于链接,它有时会导致这种奇怪的行为。知道为什么吗?
这是迈克建议的jsfiddle链接:JSFIDDLE 链接
发现它:)问题是我用来添加链接的按钮(jsfiddle 的 #linkdiv)有时会被选中(只有 FF)。我认为鼠标按下功能应该防止这种情况发生,但事实并非如此。所以,我所做的是我添加了js以防止选择该按钮:
<div id="#link" onselectstart="return false;" ondragstart="return false;">Add Link</div>
如果有人有更好的解决方案,请告诉我;)
相关文章:
- Javascript-在文本区域中断,但不在段落中中断
- 附加“;显示更多“;仅当满足设定的字符数时,链接到截断的段落
- Javascript和RegEx:拆分并保留分隔符
- Javascript-从随机的单词数组中创建段落
- 不使用分隔符分解字符串
- 设置自动分隔符的自定义属性
- 简单的jQuery段落渐变器
- 通过多个分隔符解析字符串
- 如何将JavaScript结果显示为段落
- jQuery/Javascript在内容可编辑的当前段落后插入元素
- 段落选择();我不使用javascript
- 可以't通过DOM更改javascript中的段落文本
- 用分隔符分隔具有多个整数值的字符串的Javascript"重试错误的值
- 如何在javascript中更改段落中不同行的css样式
- 有没有办法限制Summernote中可用的段落样式
- 敲除:如何使用可见数据绑定可见来隐藏段落标记
- Javascript Regex-从价格中抓取分隔符
- JQuery:如何在每次单击时逐个显示段落标签数组
- 添加链接元素时段落分隔符为 2
- 段落分隔符作为行终止符