从剪贴板复制文本到Firefox和Chrome

3
我正在使用这个函数,将剪贴板中的文本粘贴到多个文本字段中。
function pasteFromClipboard(className) {
        var data = window.clipboardData.getData('Text');
        if (data != null) {
            var cells = data.split('\n');
            var columns = $$('.'+className);

            for (i = 0; i < cells.length; i++) {
                if ( columns[i] != undefined ){
                    columns[i].value = cells[i];   
                }
            }
        }
    }

通过“onClick”附加到按钮上的这些东西在IE中有效,但在FF或Chrome中无效。 现在我知道FF限制了对剪贴板的访问,但我已经在首选项中操纵了值,但没有成功。

有人可以帮我解决这个功能,使其在Chrome中有效吗? 是否有类似于window.clipboardData.getData('Text');的选项可以使其在FF和Chrome中生效?


1
一旦在Firefox和Chrome中粘贴,您可以获取CB的值。https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent - dandavis
所以解决方案是添加另一个文本字段,用户将内容粘贴到该字段中,然后按钮读取该字段并将文本复制到需要的位置? - no9
不,你需要将所有可以粘贴的输入与处理程序绑定,然后通过事件参数中的e.getData("text/plain")方法获取源代码,最后在循环中将每个绑定输入的值设置为源代码。 - dandavis
1个回答

0

好的。所以我有一段时间放弃了这个。 我刚刚创建了一个额外的textarea控件,我把我的东西粘贴到其中。

页面上的操作然后读取此控件并执行工作 - 然后删除此控件中的内容。

有些人会说这是笨拙的解决方案,但我更喜欢“老式”的和安全的方法。

最好的问候,no9。


1
看起来还不错。如果你查看网络上典型的工作剪切/粘贴解决方案,它们通常使用https://github.com/zeroclipboard/zeroclipboard或类似的东西,在幕后使用flash-这可以避免浏览器之间的差异。当然,它需要flash,这是它自己的问题。 - mr rogers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接