如何制作一个将所选文本转换为链接的书签?

时间:2010-11-07 18:20:42

标签: javascript selection bookmarklet

让我们说你

  1. 选择“some text”浏览器。
  2. 点击书签
  3. 所选文字变为与当前页面网址的简单链接。
  4. 我该如何实现?

2 个答案:

答案 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);
    }
})();