javascript - 在 ContentEditable Div 中创建链接

标签 javascript jquery html

我正在开发一个简单的富文本编辑器,我想知道是否可以在 div 内创建链接。为了清楚起见,让我们看一个示例场景:

用户想要在博客上发帖,然后他从 url 复制一个链接,然后将其粘贴到 ContentEditable div 中,并且程序必须将复制的文本复制到 link 中。然后当他点击POST按钮时,程序必须从html中获取ContentEditable div代码(例如:<a href="stackoverflow.com"> stackoverflow.com </a>)

到目前为止,我所拥有的就是这里的 HTML 代码:

<div contentEditable=true id = "discussionmessage"></div>
<button id = "post"> POST </button>

Javascript代码在这里:

//alerts the text inside the ContentEditable div.
$("#post").click(function(){ 
    alert(document.getElementById("discussionmessage").innerHTML);     
});

这可能吗?

最佳答案

我的建议是要求用户输入简单的语法,例如...

“嗨。这是一个占位符。有关更多信息,请点击此处链接:www.example.com 该网站目前无法在移动设备上运行。更多假装文本请参见此处。”

然后您可以使用 javascript Regexp 提取以“link:”开头并以空格结尾的字符串(因为 Web url 不能有空格)。

类似这样的事情

 var text = $("discussionmessage").html();
    var Origlink = text.indexOf("link:");
    If(Origlink != -1) {
         var end = text.indexOf(" ",Origlink);
          Origlink = text.substring(Origlink+5,end);
         If (Origlink.search("http://") == -1){
         link = "http://" + link;
} else {
    link = Origlink;
}
         var newLink = "<a href='" + link + ">link</a>'";
         text = text.replace(Origlink,NewLink);
$("discussionmessage").html(text);
}

当然,这可能可以用一些 JQuery 来美化,但功能是相同的。

或者搜索字符串“www”。或“http”

希望对你有帮助

关于javascript - 在 ContentEditable Div 中创建链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32480322/

相关文章:

javascript - jQuery change() 的任何替代方法来检测用户何时通过 IE8 中的对话框选择新文件?

javascript - 为什么传递的方法/函数中的 `this` 与传递的对象上的方法调用不同

javascript - CSS Transitions 在参数化函数中不起作用

java - 调用 onclick rich tab 将光标放在文本字段中

javascript - jQuery 从隐藏输入字段获取默认值

javascript - 如何阻止网站在 iframe 中加载?

javascript - 如何预选 Dijit.form.FilteringSelect 中的第一个元素?

jQuery 脉动 div

html - 图像周围的流体 div

php - 在网络上显示 iPhone 照片时尊重 EXIF 方向