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.
我应该如何实现这一点?在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便笺。只需将所有笔记作为书签存储在同一棵树中即可。还有什么更方便的?再次感谢各位。