Javascript 在ContentEditable Div中创建链接

Javascript 在ContentEditable Div中创建链接,javascript,jquery,html,Javascript,Jquery,Html,我正在开发一个简单的富文本编辑器,我想知道是否可以在div中创建链接。为了清楚起见,让我们来看一个示例场景: 用户想要在博客上发表文章,他从url复制一个链接,然后将其粘贴到ContentEditable div中,程序必须将复制的文本制作成链接。然后,当他单击POST按钮时,程序必须从ContentEditable div中获取html代码(例如:) 到目前为止,我得到的是以下HTML代码: <div contentEditable=true id = "discussionmessag

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

用户想要在博客上发表文章,他从url复制一个链接,然后将其粘贴到
ContentEditable div
中,程序必须将复制的文本制作成
链接。然后,当他单击POST按钮时,程序必须从
ContentEditable div
中获取
html
代码(例如:

到目前为止,我得到的是以下HTML代码:

<div contentEditable=true id = "discussionmessage"></div>
<button id = "post"> POST </button>
//alerts the text inside the ContentEditable div.
$("#post").click(function(){ 
    alert(document.getElementById("discussionmessage").innerHTML);     
});

可能吗

我知道您可以使用jQuery执行类似的操作:

$("#post").click(function(){ 
    var link = $("#discussionmessage").html();
    $("#discussionmessage").html("<a href="+link+">"+link+"</a>");
});
$(“#post”)。单击(函数(){
var link=$(“#discussionmessage”).html();
$(“#discussionmessage”).html(“”);
});
这样,您就可以使用复制的链接将锚定标记添加到选定的div中

如果您只想获取链接并在JS中添加锚定标记,那么只需:

$("#post").click(function(){ 
    var link = ("<a href="+$("#discussionmessage").html()+">"+$("#discussionmessage").html()+"</a>";

});
$(“#post”)。单击(函数(){
var-link=(“”);
});

希望对您有所帮助。^^

我知道您可以使用jQuery执行以下操作:

$("#post").click(function(){ 
    var link = $("#discussionmessage").html();
    $("#discussionmessage").html("<a href="+link+">"+link+"</a>");
});
$(“#post”)。单击(函数(){
var link=$(“#discussionmessage”).html();
$(“#discussionmessage”).html(“”);
});
这样,您就可以使用复制的链接将锚定标记添加到选定的div中

如果您只想获取链接并在JS中添加锚定标记,那么只需:

$("#post").click(function(){ 
    var link = ("<a href="+$("#discussionmessage").html()+">"+$("#discussionmessage").html()+"</a>";

});
$(“#post”)。单击(函数(){
var-link=(“”);
});

希望它有帮助。^^

我的建议是要求用户键入一个简单的语法,如

“您好。这是一个占位符。有关详细信息,请单击此处链接: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);
}
var text=$(“discussionmessage”).html();
var Origlink=text.indexOf(“link:”);
如果(Origlink!=-1){
var end=text.indexOf(“,Origlink”);
Origlink=text.substring(Origlink+5,end);
If(Origlink.search(“http:/”)==-1){
link=“http://”+link;
}否则{
链接=原始链接;
}
var newLink=“”;
text=text.replace(Origlink,NewLink);
$(“discussionmessage”).html(文本);
}
当然,这可能与一些JQuery相关联,但功能是相同的

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


希望它有帮助

我的建议是要求用户键入一个简单的语法,如

“您好。这是一个占位符。有关详细信息,请单击此处链接: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);
}
var text=$(“discussionmessage”).html();
var Origlink=text.indexOf(“link:”);
如果(Origlink!=-1){
var end=text.indexOf(“,Origlink”);
Origlink=text.substring(Origlink+5,end);
If(Origlink.search(“http:/”)==-1){
link=“http://”+link;
}否则{
链接=原始链接;
}
var newLink=“”;
text=text.replace(Origlink,NewLink);
$(“discussionmessage”).html(文本);
}
当然,这可能与一些JQuery相关联,但功能是相同的

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


希望它能对您有所帮助

除了安全方面的考虑,您是否尝试过在页面中添加一个新的
元素,并将
href
属性设置为
中的url?@Tro:是的,为什么?出了什么问题?除了安全方面的考虑,您是否尝试过在页面中添加一个新的
元素并设置
href
属性是您的
中的url?@Tro:是的,为什么?怎么了?感谢您的回复,但是如果用户输入了一些文本而不是该链接呢?正如我在您的代码中所看到的,您将获得div中的所有文本,并在单击post后将其转换为链接。输入清理不是问题,而且要复杂得多。T这就是我寻求帮助的原因:(对于这个问题,您可以检查:感谢您的回复,但是如果用户输入的文本不是该链接怎么办?正如我在您的代码中所看到的,您在div中获取所有文本,并在单击post后将其转换为链接。输入消除不在问题中,而且要复杂得多。这就是我寻求帮助的原因:(对于该问题,您可以检查: