相关疑难解决方法(0)

在chrome扩展中正确使用execcommand("paste")

我正在尝试使用execcommand("paste")chome扩展将剪贴板数据粘贴到textarea中,但我似乎无法让它工作.权限已设置.我试图设置focus()textarea,但document.execCommand("paste")什么也没做,我没有错误.execcommand("paste")从后台页面调用也没有任何作用.

<form>
     <textarea id="ta"></textarea>    
</form>
<script type="text/javascript">
    document.findElemetById("ta").focus();
    document.execCommand("paste");
</script>
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

20
推荐指数
2
解决办法
4万
查看次数

如何在Chrome扩展程序中获取剪贴板数据?

我很难找到有关如何为"Ctrl + C"添加监听器,获取剪贴板数据,然后在Chrome扩展程序中写回剪贴板的最新信息.我找到的所有旧代码都是针对旧版本的,现在已弃用.

javascript clipboard google-chrome google-chrome-extension

16
推荐指数
3
解决办法
7754
查看次数

如何将网络通知内容复制到剪贴板

我正在使用 Firebase Cloud Messaging (FCM) 发送数据消息,以便我可以使用 Service Worker 处理通知。现在我使用 Service Worker 显示通知,当我单击通知时,我想复制剪贴板中的通知内容。

const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler((payload)=> {
    const title = payload.data.title;
    const options = {
        body: payload.data.body
    };
    return self.registration.showNotification(title,
        options);
});

self.addEventListener('notificationclick', (event)=>{
    console.log(event);
    navigator.clipboard.writeText(event).then(function() {
        console.log('Async: Copying to clipboard was successful!');
      }, function(err) {
        console.error('Async: Could not copy text: ', err);
      });
});
Run Code Online (Sandbox Code Playgroud)

单击通知时notificationclick触发事件。但我变得navigator.clipboard不确定。我也在为我的网站使用安全域。我也无法使用,document.execcommand('copy')因为无法使用 Service Worker 访问 DOM。您能否建议一种无需打开任何网址即可复制通知内容的方法?

javascript web-notifications service-worker

10
推荐指数
1
解决办法
504
查看次数

将文本写入剪贴板

我想通过Chrome扩展程序将一些文本变量写入剪贴板,当用户按下快捷键时会发生这种情况.除写入剪贴板外,我已经完成了所有部分.

我使用以下关键字搜索整个StackOverflow:"[google-chrome-extension]剪贴板"

所以我想说,我看到所有相关的:

  • 添加clipboardReadclipboardWrite许可(已完成)
  • 在a <textarea>,call document.execCommand('Copy'); 或中 添加文本document.execCommand("Copy", false, null);

即使我在StackOverflow上尝试了我的扩展textarea,我将我的文本插入到StackOverflow的wmd-input部分textarea,然后选择它,然后调用copy.什么都没有,什么都没有......

一切都在尝试.请指教......我错过了什么?

javascript clipboard google-chrome-extension

8
推荐指数
2
解决办法
1万
查看次数

为什么document.execCommand("copy")在我的chrome扩展的内容脚本中不起作用?

我想从我正在创建的chrome扩展中将一些数据写入clipborad.在清单文件中,我赋予了clipboardRead和clipboardWrite的权限.

我使用这个功能,我在这里找到

但它不起作用.好像是"document.execCommand('copy');" 无法工作.

我在内容脚本中写下所有这些代码.

thx清单:

{
    "manifest_version":2,

    "name":"easyCopy",
    "description":"just a small toll",
    "version":"1.0.0",

    "permissions":[
        "clipboardWrite", "http://*/*", "clipboardRead"
    ],

    "content_scripts":[
        {
            "matches":["http://*/*"],
            "js":["jquery-1.9.1.min.js", "main_feature.js"]
        }
    ],

    "background":{
        "persistent":false,
        "page":"background.html"
    }
}
Run Code Online (Sandbox Code Playgroud)

main_feature.js:

copyOrderId();
function copyOrderId() {
    $(".order-num").click(function () {
        var curOrderNum = $(this).text();
        copyTextToClipboard(curOrderNum);
//        chrome.extension.sendMessage({method:"copy", content:curOrderNum}, function (response) {
//            clog(response);
//        });
    });


}

function copyTextToClipboard(text) {
    var copyFrom = $('<textarea/>');
    copyFrom.text(text);
    $('body').append(copyFrom);
    copyFrom.select();
    document.execCommand('copy', true);
    copyFrom.remove();

}
function clog(message) {
    console.log(message);
} …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

7
推荐指数
1
解决办法
2万
查看次数

如何从 Google Chrome 扩展程序将 HTML 格式的文本复制到剪贴板?

比如说,在我的 Chrome 扩展中,我需要将用户格式的 HTML 文本复制到剪贴板。文本(HTML 形式)可能是这样的:

This is a <b>test</b><div><br></div>
<div>And this is too</div><div><br></div><div>Thank you</div>
Run Code Online (Sandbox Code Playgroud)

如果我使用这个JavaScript 示例,我所复制的只是上面的 HTML 标记。但我想知道,我可以将其复制为格式化文本,还是这样?

这是一个测试
这也是
谢谢

html javascript clipboard google-chrome google-chrome-extension

5
推荐指数
1
解决办法
6113
查看次数

使用 chrome 扩展中的剪贴板 API 写入剪贴板时,文档未聚焦错误

我正在开发一个扩展程序,它拍摄页面可见部分的快照并将其复制到剪贴板。我决定使用新的剪贴板 API来做到这一点。处理捕获和复制的代码位于我的扩展程序的 background.js 中。这是相关部分的样子:

    chrome.tabs.captureVisibleTab(function(dataUrl) {
        convertToBlob(dataUrl).then((data) => {
            navigator.clipboard.write([
                new ClipboardItem({
                    'image/png': data
                })
            ]);
        });
    });
Run Code Online (Sandbox Code Playgroud)

此操作是通过单击我使用 注入页面的小部件触发的chrome.tabs.executeScript。我只在 Chrome 中工作。但是,每次尝试时,都会出现此错误:

Uncaught (in promise) DOMException: Document is not focused.
Run Code Online (Sandbox Code Playgroud)

最初,我认为我捕获的文档没有聚焦,但事实并非如此。我的document.hasFocus()回归真实。然后我想,出于某种我无法理解的原因,它希望 background.html 成为焦点。因此,我最终创建了一个包含输入字段的自定义 background.html,在执行 navigator.clipboard 访问之前,我会以编程方式关注并单击该输入。没有骰子。编辑:我执行了实际的页面检查并且 background.html 确实没有聚焦,即使我将焦点分配给它,这是有道理的。没有意义的是为什么会发生这种情况,因为我应该使用此 API 在任何上下文中将内容捕获到剪贴板。

我确实运行了 navigator.permissions 查询以查看是否授予了剪贴板写访问权限,并且确实如此。

在这一点上,我没有想法,有人有什么建议吗?谢谢!卢卡

javascript clipboard google-chrome-extension

5
推荐指数
0
解决办法
1844
查看次数

如何制作chrome扩展名以将选择内容复制到剪贴板

我想通过单击ContextMenu进行扩展以将选择复制到clipboasd.在chrome中,很多人都使用flash solusion.但是如何在ContextMenus中使用flash.这似乎是不可能的.谁能告诉我一个solusion?

我做了什么

var a = chrome.contextMenus.create({"title":copy,"context":["selection"],"onclick":copy});
function copy(info,tab){
document.execCommand('selectAll'); //just for example
document.execCommand('copy');
}
Run Code Online (Sandbox Code Playgroud)

我已经将manifestWrite权限添加到manifest.json.But它似乎不起作用."许可":[ "contextMenus", "clipboardWrite"]

javascript clipboard google-chrome-extension

4
推荐指数
1
解决办法
4934
查看次数

在Chrome扩展程序中,为什么要使用HTML背景页?

我了解Chrome扩展程序的后台页面永远不会显示.对我来说,后台页面应该只包含脚本是有道理的.在什么情况下需要HTML标记?

https://developer.chrome.com/extensions/background_pages中有一个带有HTML背景页面的示例,但我无法让它工作(可能是因为我不确定它应该做什么).

是否有任何简单的Chrome扩展程序示例,演示HTML标记在后台页面中的用途?

google-chrome-extension

4
推荐指数
1
解决办法
1436
查看次数