从粘贴到输入标记的超链接中隔离链接

时间:2017-07-11 00:01:37

标签: javascript jquery html hyperlink

我的情况是用户需要粘贴超链接,应用程序必须解析附加到给定文本的链接。

例如,用户粘贴Bob Phil

我想获取附加到此超链接名称的链接并将其存储在变量中(我使用的是JQuery)

复制并粘贴超链接名称只会在输入字段中显示原始文本,因此我无法获取该链接。

我很感激任何帮助/见解。

更新:要了解我的意思,只需将Test Link复制并粘贴到Google表格中即可。您将看到Sheets识别超链接。我该怎么做呢?类似的东西?

3 个答案:

答案 0 :(得分:1)

在线电子表格挂钩Ctrl + C,Ctrl + V并将焦点转移到隐藏的textarea。然后他们阅读textarea中的文本。

答案 1 :(得分:0)

'Paste'标记上绑定Input

访问Clipboard数据以获取文字和HTML。试试片段。

$(document).ready(function(){

    $('#source').bind('paste', function (e) {
// Prevent while Pasting Data 
    e.preventDefault();
// For Internet Explorer (not working)
    if( window.clipboardData )
    {
        var content1 = window.clipboardData.getData('text');
        $('#source').val(content1);
        $('#target').val("Use Other Browser to Avail this Facility.");
    }
// for Other Browsers (tested on FireFox, Chrome & EDGE)
    else if( e.originalEvent.clipboardData )
    {
        var plainText = (e.originalEvent || e).clipboardData.getData('text/plain');
        var htmlText = (e.originalEvent || e).clipboardData.getData('text/html');
        var hrefArray = new Array();
// Store Html Data in Temporary Div
        var TempDiv = $('<div></div>').append(htmlText);
// Get HREF of each Anchor Tag
        $('a', TempDiv).each(function(){
            hrefArray.push($(this).attr('href'));
        });
        $('#source').val(plainText);
        $('#target').val(hrefArray.join('\r'));
    }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Copy & Paste this line <a href="https://stackoverflow.com/questions/tagged/javascript">Link1</a> <a href="https://stackoverflow.com/questions/tagged/html">Link2</a> into input textbox<br>

<input type=text id=source style="width:400px; border: solid 1px #000;">
<br>
<textarea id=target style="width:400px; height:200px; border: solid 1px #000;"></textarea>

答案 2 :(得分:0)

在同事的帮助下,我能够做到这一点:

<强>的index.html

<div contenteditable="true"">
Paste something...

</div>

<强> test.js

$(function(){
    $("div").on("paste", function(){
        setTimeout(function(){
            console.log($("div").html());
        },100);
    });        
});

设置contenteditable="true",然后通过$("div").html()抓取HTML,允许我将其存储在变量中并通过它解析,以便在粘贴到<div> <后将链接附加到超链接/ p>