Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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 如何制作将选定文本转换为链接的bookmarklet?_Javascript_Selection_Bookmarklet - Fatal编程技术网

Javascript 如何制作将选定文本转换为链接的bookmarklet?

Javascript 如何制作将选定文本转换为链接的bookmarklet?,javascript,selection,bookmarklet,Javascript,Selection,Bookmarklet,比如说你 在浏览器中选择“某些文本” 单击书签 所选文本将变成与当前页面url的简单链接 我应该如何实现这一点?在Firefox 3.6、Chome 6和Opera 10.6中测试的示例代码与您在问题中描述的完全相同 javascript:( function(){ var range = window.getSelection().getRangeAt(0); var a = document.createElement('a'); a.

比如说你

  • 在浏览器中选择“某些文本”
  • 单击书签
  • 所选文本将变成与当前页面url的简单链接

  • 我应该如何实现这一点?

    在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兼容,请阅读以下文章:
    以下内容与@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);
        }
    })();
    

    谢谢太好了!我希望你明白这个书签可以做什么。只需用一段文本创建一个链接,然后拖动到书签工具栏。您将获得一个显示所选文本的书签。firefox中不再有愚蠢的剪贴簿,Opera中不再有Opera便笺。只需将所有笔记作为书签存储在同一棵树中即可。还有什么更方便的?再次感谢各位。