「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)
}
これがフィドルです:http://jsfiddle.net/ESr3C/