gpt4 book ai didi

javascript - 在 Chrome 扩展中正确使用 execcommand ("paste")

转载 作者:行者123 更新时间:2023-12-03 03:32:11 26 4
gpt4 key购买 nike

我正在尝试使用 execcommand("paste") 将剪贴板数据粘贴到文本区域中带有 chome 扩展,但我似乎无法让它工作。权限已设置。我尝试设置 focus()在文本区域上,但是 document.execCommand("paste")什么也没做,我也没有收到任何错误。调用execcommand("paste")从后台页面也不执行任何操作。

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

最佳答案

剪贴板功能是 my extension 的关键部分所以我已经看到了所有正常的问题。在我的背景页面上,我公开了 copy和一个 paste函数且页面本身包含 <textarea id="sandbox"></textarea> ;

function copy(str) {
var sandbox = $('#sandbox').val(str).select();
document.execCommand('copy');
sandbox.val('');
}

function paste() {
var result = '',
sandbox = $('#sandbox').val('').select();
if (document.execCommand('paste')) {
result = sandbox.val();
}
sandbox.val('');
return result;
}

我正在使用jQuery为了简单起见,但你明白了。现在,每当我想使用剪贴板功能时,我只需调用相关函数即可。我的扩展程序中的其他页面可以通过 chrome.extension.getBackgroundPage() 访问此 API但您也可以使用chrome.runtime.getBackgroundPage(callback)如果您的背景页面是 event page .

我不确定这是否是最佳实践,或者是否存在此功能,但这绝对适合我并且非常干净。

关于javascript - 在 Chrome 扩展中正确使用 execcommand ("paste"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com