midavid
小狐狸
小狐狸
  • UID24875
  • 注册日期2008-06-19
  • 最后登录2010-03-03
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
阅读:5200回复:13

请问“复制链接文字”的功能是否可以编写脚本实现?

楼主#
更多 发布于:2008-08-05 13:34
现在是用copy link text这个插件来实现
觉得单独占用一个插件有些浪费,不知道能不能把它编写成firegestures的一个脚本,用鼠标手势来实现,请指教
tazzy
小狐狸
小狐狸
  • UID18142
  • 注册日期2007-04-20
  • 最后登录2010-07-19
  • 发帖数29
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2008-08-05 13:34
midavid:现在是用copy link text这个插件来实现
觉得单独占用一个插件有些浪费,不知道能不能把它编写成firegestures的一个脚本,用鼠标手势来实现,请指教
回到原帖


http://www.xuldev.org/firegestures/getscripts.php
有现成的  Copy Page Title and URL to Clipboard
Thunderbird 的 QQ 群68676059
openicq
狐狸大王
狐狸大王
  • UID5412
  • 注册日期2005-04-23
  • 最后登录2015-12-15
  • 发帖数353
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
2楼#
发布于:2008-08-05 13:34
tazzy

http://www.xuldev.org/firegestures/getscripts.php
有现成的  Copy Page Title and URL to Clipboard
回到原帖

看那个代码似乎只是生成标签页HTML Link
跟copy link text的功能有很大不同啊
midavid
小狐狸
小狐狸
  • UID24875
  • 注册日期2008-06-19
  • 最后登录2010-03-03
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
3楼#
发布于:2008-08-05 13:34
tazzy

http://www.xuldev.org/firegestures/getscripts.php
有现成的  Copy Page Title and URL to Clipboard
回到原帖

嗯,不是要当前浏览页的,我的意思是比如页面内有一个链接,文字是“百度”,链接到“www.baidu.com”,现在我想在该链接上画一个鼠标手势,能够将“百度”二字复制到剪贴版上。不知道是否能编写出这样的脚本
Cye3s
千年狐狸
千年狐狸
  • UID155
  • 注册日期2004-11-25
  • 最后登录2024-04-28
  • 发帖数1322
  • 经验95枚
  • 威望0点
  • 贡献值34点
  • 好评度14点
  • 社区居民
  • 忠实会员
4楼#
发布于:2008-08-05 13:34
userchrome.js扩展+
var copyLink = {
    copy: function(aString) {
        var clipb = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
        clipb.copyString(aString);
        dump(aString);
    },
    
    text: function() {
        this.copy(gContextMenu.linkText());
    },
    
    init: function()
    {
        this.mItem = document.createElement("menuitem");
        this.mItem.setAttribute("label", "\u590D\u5236\u94FE\u63A5\u6587\u672C");
        this.mItem.setAttribute("accesskey", "T");
        
        document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() { copyLink.onPopupShowing(this); }, false);
    },
    
    onPopupShowing: function(aPopup)
    {
        aPopup.insertBefore(this.mItem, document.getElementById("context-copylink"));
        this.mItem.setAttribute("oncommand", "copyLink.text();");
        this.mItem.hidden = !gContextMenu.onLink;
    }
}

window.setTimeout(function() {
    copyLink.init();
});
我很懒...
midavid
小狐狸
小狐狸
  • UID24875
  • 注册日期2008-06-19
  • 最后登录2010-03-03
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
5楼#
发布于:2008-08-05 13:34
楼上的兄弟,你的脚本我在firegestures里尝试没有成功啊。这个脚本只是userChrome扩展适用的?
midavid
小狐狸
小狐狸
  • UID24875
  • 注册日期2008-06-19
  • 最后登录2010-03-03
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
6楼#
发布于:2008-08-05 13:34

在firegestures下划过一次你写的脚本对应的手势后,链接的右键菜单就多了一个“复制链接文本”的选项,但是无效,而且重启后该选项就消失了
我还是希望用firegestures在链接处为起点画一个手势后可以复制该链接的文字,因为如果卸了CoLT装上userChrome等于还是没少啊,呵呵。不知能否实现,谢谢~
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
7楼#
发布于:2008-08-05 13:34
var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"]
                .getService(Ci.nsIClipboardHelper);
clipboard.copyString(FireGestures.sourceNode);
FireGestures.setStatusText(FireGestures.sourceNode);
midavid
小狐狸
小狐狸
  • UID24875
  • 注册日期2008-06-19
  • 最后登录2010-03-03
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
8楼#
发布于:2008-08-05 13:34
wushi777兄,你的代码我试了下,复制下来的是链接地址而非链接文字,麻烦你再修改下,辛苦了~~

嗯,我的意思是比如页面内有一个链接,文字是“百度”,链接到“www.baidu.com”,现在我想在该链接上画一个鼠标手势,能够将“百度”二字复制到剪贴版上。不知道是否能编写出这样的脚本
midavid
小狐狸
小狐狸
  • UID24875
  • 注册日期2008-06-19
  • 最后登录2010-03-03
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
9楼#
发布于:2008-08-05 13:34
附上copy link text扩展的js源代码部分,大家帮忙看看怎么改成firegestures的脚本。谢了!
var copylinktext = {
  onLoad: function() {
    // initialization code
    this.initialized = true;
    this.strings = document.getElementById("copylinktext-strings");
    document.getElementById("contentAreaContextMenu")
            .addEventListener("popupshowing", function(e) { copylinktext.showContextMenu(e); }, false);
  },

  showContextMenu: function(event) {
    // show or hide the menuitem based on what the context menu is on
    // see http://kb.mozillazine.org/Adding_items_to_menus
    document.getElementById("context-copylinktext").hidden = !gContextMenu.onLink;
  },
  onMenuItemCommand: function(e) {
	
	// Get the link text
	var copytext = gContextMenu.linkText();

	// Start preparation to add contents to clipboard
	var strunicode   = Components.classes["@mozilla.org/supports-string;1"].
                       createInstance(Components.interfaces.nsISupportsString);
	if (!strunicode) return false;
	var strhtml   = Components.classes["@mozilla.org/supports-string;1"].
                       createInstance(Components.interfaces.nsISupportsString);
	if (!strhtml) return false;

	// Assign link text to clipboard variables
	strhtml.data = copytext;
	strunicode.data  = copytext;

	var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
	if (!trans) return false;
	trans.addDataFlavor("text/html");
	trans.addDataFlavor("text/unicode");
	trans.setTransferData("text/html", strhtml, copytext.length * 2);
	trans.setTransferData("text/unicode", strunicode, copytext.length * 2);
	var clipid = Components.interfaces.nsIClipboard;
	var clip   = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
	if (!clip) return false;

	// Add the link text to the clipboard
	clip.setData(trans, null, clipid.kGlobalClipboard);

  },

};
window.addEventListener("load", function(e) { copylinktext.onLoad(e); }, false);
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
10楼#
发布于:2008-08-05 13:34
midavid:wushi777兄,你的代码我试了下,复制下来的是链接地址而非链接文字,麻烦你再修改下,辛苦了~~
回到原帖

var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"]
                .getService(Ci.nsIClipboardHelper);
clipboard.copyString(FireGestures.sourceNode.textContent);
FireGestures.setStatusText(FireGestures.sourceNode.textContent);
midavid
小狐狸
小狐狸
  • UID24875
  • 注册日期2008-06-19
  • 最后登录2010-03-03
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
11楼#
发布于:2008-08-05 13:34
赞!
好用,多谢~~
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-05-14
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
12楼#
发布于:2013-10-27 23:16
wushi777:var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"]
                .getService(Ci.nsIClipboardHelper);
clipboar...
回到原帖
正需要此功能,复制链接很方便,多谢!
brucmao
火狐狸
火狐狸
  • UID39549
  • 注册日期2013-05-29
  • 最后登录2020-03-25
  • 发帖数101
  • 经验154枚
  • 威望0点
  • 贡献值134点
  • 好评度5点
13楼#
发布于:2014-11-19 17:02
wushi777:var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"]
                .getService(Ci.nsIClipboardHelper);
clipboar...
回到原帖
安装copy link text扩展后,右键没有复制文字的选项,这个手势不错,用上了。
@brucmao
游客

返回顶部