chrome javascript内容扩展剪切复制粘贴混淆

时间:2018-03-29 10:59:45

标签: javascript google-chrome clipboard

您好我正在尝试在剪切复制粘贴中捕获缓冲区。 我可以获得粘贴,但复制和剪切似乎不起作用。

ENV: Windows 10 x64: 谷歌浏览器是最新的 版本65.0.3325.181(官方构建)(64位)

的index.html

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> 

<html xmlns='http://www.w3.org/1999/xhtml' xmlns:v='urn:schemas-microsoft-com:vml'> 

<body>

<hr/>Clipboard TEST<br/>
<textarea id='idCut'
        rows='8'
        cols='32'>
Cut something from here 
</textarea>

</body>
</html>

的manifest.json

{
  "name": "Chrome Extension",
  "description": "Stuff",
  "version": "2.0",

  "permissions": [
    "nativeMessaging",
        "notifications",
        "activeTab",
        "tabs",
        "webRequest",
        "webRequestBlocking",
        "downloads",
        "clipboardWrite",
        "clipboardRead",
        "*://*/*"
    ],

  "content_scripts": [
    {
        "matches": ["http://*/*", "https://*/*"],
        "js": ["content.js"],
        "run_at": "document_end"
    }],

  "browser_action": {
    "default_title": "Make this page do Stuff"
  },
  "manifest_version": 2
}

content.js

function onCut(e)
{
    console.log( 'onCut ENTER' );

    var buf = e.clipboardData.getData('text/plain');

    console.log( 'onCut  EXIT ' + buf );
}

function onCopy(e)
{
    console.log( 'onCopy ENTER' );

    var buf = e.clipboardData.getData('text/plain');

    console.log( 'onCopy  EXIT ' + buf );
}

function onPaste(e)
{
    console.log( 'onPaste ENTER' );

    var buf = e.clipboardData.getData('text/plain');

    console.log( 'onPaste  EXIT ' + buf );
}

document.addEventListener('cut',onCut,true); 
document.addEventListener('copy',onCopy,true); 
document.addEventListener('paste',onPaste,true); 

然后我从文本区域选择“something”并按ctrl X,ctrl C,ctrl V 结果是:

content.js:8 onCut ENTER
content.js:12 onCut  EXIT 
content.js:17 onCopy ENTER
content.js:21 onCopy  EXIT 
content.js:26 onPaste ENTER
content.js:30 onPaste  EXIT something

所以,Paste给了我缓冲区,但其他的没有。

我的问题是为什么不剪切和复制显示缓冲区但是粘贴是什么?

我已经读过我需要使用background.js并将op执行到像div这样的临时dom元素,然后将其本机消息传出,但如果这是真的,为什么粘贴工作?似乎安全/ impl不一致。

这是否有原因? 或者我错过了什么?

我刚刚添加了html和清单...抱歉,它似乎不需要,因为粘贴正在工作。我相信让它完整?

由于

0 个答案:

没有答案