Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 保存超链接URL';从所选文本中删除?_Javascript_Hyperlink - Fatal编程技术网

Javascript 保存超链接URL';从所选文本中删除?

Javascript 保存超链接URL';从所选文本中删除?,javascript,hyperlink,Javascript,Hyperlink,是否可以只存储当前选定文本的URL? 这将在页面上保存所选文本 var selectedText = window.getSelection().toString(); 这将保存所有超链接 var links = document.links; 编辑: 这将返回null: var data=new Object(); data.selectedText = window.getSelection(); console.log(data.selectedText.outerHT

是否可以只存储当前选定文本的URL?

这将在页面上保存所选文本

var selectedText = window.getSelection().toString();
这将保存所有超链接

var links = document.links;
编辑:
这将返回
null

var data=new Object();
    data.selectedText = window.getSelection();
    console.log(data.selectedText.outerHTML);

如果您只想获取“a”标记中的链接,可以执行以下操作:

function getLinksFromSelection() {
    if (window.getSelection) {
        var selection = window.getSelection();
        if (selection.rangeCount > 0) {
            var range = selection.getRangeAt(0);
            var div = document.createElement('DIV');
            div.appendChild(range.cloneContents());
            var links = div.getElementsByTagName("A")
            for (var i=0; i < links.length; i++) {
                console.log(links[i].href);
            }
    }
}
var alink = range.commonAncestorContainer;
if (alink.nodeType == 3) {
    // if text node then get parent
    alink = alink.parentNode;
}
if (alink.tagName === 'A') {
    console.log(alink.href)
}

问题是:

如果您只想获取“a”标记中的链接,您可以这样做:

function getLinksFromSelection() {
    if (window.getSelection) {
        var selection = window.getSelection();
        if (selection.rangeCount > 0) {
            var range = selection.getRangeAt(0);
            var div = document.createElement('DIV');
            div.appendChild(range.cloneContents());
            var links = div.getElementsByTagName("A")
            for (var i=0; i < links.length; i++) {
                console.log(links[i].href);
            }
    }
}
var alink = range.commonAncestorContainer;
if (alink.nodeType == 3) {
    // if text node then get parent
    alink = alink.parentNode;
}
if (alink.tagName === 'A') {
    console.log(alink.href)
}

问题是:

您必须在
window.getSelection()
上运行正则表达式才能选择链接。如何从
window.getSelection()中提取数据?尝试了
.outerHTML
,但它是
null
您必须在
window.getSelection()
上运行正则表达式才能选择链接。如何从
window.getSelection()提取数据?尝试了
.outerHTML
但它是
null
这会将找到的链接写入控制台,但您始终可以将其存储在数组中。这会将找到的链接写入控制台,但您始终可以将其存储在数组中。