让我们说你
我该如何实现?
答案 0 :(得分:2)
在Firefox 3.6,Chome 6和Opera 10.6中测试的示例代码完全按照您在问题中描述的内容进行测试。
javascript:(
function(){
var range = window.getSelection().getRangeAt(0);
var a = document.createElement('a');
a.setAttribute('href',document.location);
a.appendChild(document.createTextNode(window.getSelection().toString()));
range.deleteContents();
range.insertNode(a);
}
)()
如果你需要它与IE兼容阅读这篇文章: http://www.daniweb.com/forums/thread85642.html
答案 1 :(得分:1)
以下与@ wojtiku的答案非常相似,但增加了IE支持以及一些额外的检查和改进:
javascript:(function() {
var sel, range, a;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0);
a = document.createElement("a");
a.href = window.location.href;
a.appendChild(document.createTextNode("" + sel));
range.deleteContents();
range.insertNode(a);
}
} else if (document.selection && document.selection.type == "Text") {
range = document.selection.createRange();
a = document.createElement("a");
a.href = window.location.href;
a.appendChild(document.createTextNode(range.text));
range.pasteHTML(a.outerHTML);
}
})();