在Chrome中,使用window.Clipboard对象,是有办法捕捉到粘贴的文本?(In chr

2019-07-04 22:55发布

您可以拍摄图像 。 我试图找出如何捕获文本。 我猜没有,出于安全原因,但我想确认一下。

也有这个东西的参考? window.Clipboard对象不是V8引擎的一部分,它是Chrome浏览器的一部分,我不能为它找到官方文档。

Answer 1:

在您链接的代码有一个pasteHandler具有以下功能:

// Get the items from the clipboard
        var items = e.clipboardData.items;
        if (items) {
            // Loop through all items, looking for any kind of image
            for (var i = 0; i < items.length; i++) {
                if (items[i].type.indexOf("image") !== -1) {
                    // We need to represent the image as a file,
                    var blob = items[i].getAsFile();
                    // and use a URL or webkitURL (whichever is available to the browser)
                    // to create a temporary URL to the object
                    var URLObj = window.URL || window.webkitURL;
                    var source = URLObj.createObjectURL(blob);

                    // The URL can then be used as the source of an image
                    createImage(source);
                }
            }
        }

铬显影剂框架是告诉我,项[i]是一个DataTransferItem (参考)

在参考页我看到了kind属性和getAsString()方法。 后者似乎需要接收文本作为参数的回调函数。 因此,使用上面的脚本您可以修改我联系如下的部分来处理文本值:

// Get the items from the clipboard
        var items = e.clipboardData.items;
        if (items) {
            // Loop through all items, looking for any kind of image
            for (var i = 0; i < items.length; i++) {
                if (items[i].type.indexOf("image") !== -1) {
                    // We need to represent the image as a file,
                    var blob = items[i].getAsFile();
                    // and use a URL or webkitURL (whichever is available to the browser)
                    // to create a temporary URL to the object
                    var URLObj = window.URL || window.webkitURL;
                    var source = URLObj.createObjectURL(blob);

                    // The URL can then be used as the source of an image
                    createImage(source);
                } 
                if (items[i].kind === "string"){
                    items[i].getAsString(function(s) {
                        alert(s);
                    });
                }
            }
        }


文章来源: In chrome, using the window.Clipboard object, is there a way to capture pasted text?