获取<a href=""> contents based on text highlighted</a>

时间:2014-08-19 15:12:06

标签: javascript html selection href execcommand

我希望能够识别所选文本是否包含URL - 这个想法是,一旦用户选择内容可编辑div中的文本(如果它包含URL),该URL将显示在另一个内容可编辑div中以允许它们对URL进行更正。然后,如果他们对网址进行了更改,则会更新<a href>

我目前创建的代码允许用户选择任何文本并创建一个链接,只是导致问题的修正。

下面的代码是我的代码的一部分,当用户选择文本元素时,它将#指定为URL,然后一旦用户输入,他们就可以将http://链接写入名为#link的内容可编辑div中一个http://链接然后用链接更新#。

document.getElementById("insertHTML").onclick = function(e) {
    var sText =document.getSelection();        
    document.execCommand('insertHTML', false, '<a href=# id ="data_link" target="_blank">' + sText + '</a>');
};

var contents = $('#link').html();
$('#link').blur(function() {
    if (contents!=$(this).html()){
        contents = $(this).html();
        document.getElementById('data_link').setAttribute('href', contents);
        document.getElementById('data_link').setAttribute('id', contents);
    }
    $('#link').empty();
});

任何想法都会很棒,到目前为止在网上没有任何运气

谢谢大家:)

1 个答案:

答案 0 :(得分:1)

Jsfiddle

选择一些文字,您会看到它出现在警报中。您可以使用url取消注释该行,将其设置为您自己的URL并将文本放在您想要的任何位置,我只需将其放在我所做的位置,作为如何实现它的示例。选择文本后,它会将您带到该URL。

如果您想创建一个input type="button" id="myInputButtonId"等链接到另一个页面,请使用

$("#myInputButtonId").on('click', function(){

而不是

$("#writtenstuff").on('mouseup', function () {

<强> HTML

<div id="writtenstuff">
    <p>The quick brown fox jumps over the lazy dog</p>
</div>

<强> JS

$("#writtenstuff").on('mouseup', function () {

    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }
    if (text != "" && text != " ") {
        alert(text);
        //window.location.href = "http://www.someurl.com/"+text;
    }
});