Javascript 保存超链接URL';从所选文本中删除?
是否可以只存储当前选定文本的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
这将在页面上保存所选文本
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
这会将找到的链接写入控制台,但您始终可以将其存储在数组中。这会将找到的链接写入控制台,但您始终可以将其存储在数组中。