Greasemonkey \ JavaScript复制到剪贴板按钮

问题描述:

我想写一个JavaScript脚本添加到添加按钮后的按钮的greasemonkey。该按钮的onClick应该将父母元素文本复制到键盘。我看到过很多这样的副本已选定文本复制到剪贴板像这样的例子:Greasemonkey JavaScript复制到剪贴板按钮

<SCRIPT LANGUAGE="JavaScript"> 
    <!-- Begin 
    function copyit(theField) { 
    var selectedText = document.selection; 
    if (selectedText.type == 'Text') { 
    var newRange = selectedText.createRange(); 
    theField.focus(); 
    theField.value = newRange.text; 
    } else { 
    alert('Alert: Select The text in the textarea then click on this button'); 
    } 
    } 
    // End --> 
    </script> 
    <input onclick="copyit(this.form.text_select)" type="button" value="Click Here to Copy the Highlighted Text" name="copy_button"> 

找到here

我也发现你可以在输入元素中选择文本。我尝试将两种技术以及许多其他方法结合起来,但还没有可行的解决方案。我甚至不知道为什么上面的代码复制到剪贴板。有没有人有解决这个问题?

+0

另请注意:https://developer.mozilla.org/en/Using_the_Clipboard – javamonkey79 2008-12-25 02:40:29

如果你花时间来阅读完整文章,作者指出这不适用于Firefox的工作...
其实,我觉得它甚至不工作对于IE,因为它没有任何与剪贴板相关的东西!

有一种使用Flash的技术,因为默认情况下,出于安全原因,Firefox禁止剪贴板访问。
否则,传统的方式做副本:

var tc = textToCopy.replace(/\n\n/g, '\n'); 
if (window.clipboardData) // IE 
{ 
    window.clipboardData.setData("Text", tc); 
} 
else 
{ 
    unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
    const clipboardHelper = Components.classes 
     ["@mozilla.org/widget/clipboardhelper;1"]. 
     getService(Components.interfaces.nsIClipboardHelper); 
    clipboardHelper.copyString(tc); 
} 

使副本(给定站点)之后。

+5

我确实花时间阅读整篇文章 - 我只是错过了“笔记”;没有理由变得敏捷,我们都会犯错误。尽管如此,您的解决方案是正确的方式,谢谢。 – javamonkey79 2008-12-25 02:39:08

你确定你的例子有效吗?它不在我的浏览器中。但是看看下面的页面:http://www.jeffothy.com/weblog/clipboard-copy/

+0

它适用于FF 3.0.4,但您必须选择文本才能使复制按钮生效。我看过那篇博文,它依赖于使用flash来复制,这对我正在尝试做的事不起作用。谢谢。 :) – javamonkey79 2008-11-27 04:36:50