复制和粘贴交叉表 Chrome 扩展
Copying and Pasting crosstab Chrome Extension
我正在尝试创建一个 chrome 扩展,它从选项卡 A 复制一个值并将其粘贴到选项卡 B。我正在尝试使其工作,但我没有收到任何响应消息。这是我的代码:
内容-script.js
var toCopy = "Copy: I am a String";
document.getElementById('btnCopy').onclick = doCopy;
function doCopy(){
chrome.runtime.sendMessage(extId, {text: toCopy}, chrome => {
console.log('Copied ' + toCopy + '!');
});
}
var toPaste = "Get: textCopied";
document.getElementById('btnPaste').onclick = doPaste;
function doPaste(){
chrome.runtime.sendMessage(extId, {text: toPaste}, chrome => {
console.log('Pasted ' + toPaste + '!');
});
}
background.js
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
if (message.text.substring(0, 5) === "Copy:")
chrome.storage.sync.set({'textCopied': text.substring(6, text.length)}, function () {
console.log('saved!');
});
else if (message.text.substring(0, 4) === "Get:")
chrome.storage.sync.get(['textCopied'], function (items) {
console.log('Here is the copied text from before: ' + items);
});
}
上下文:
我在 manifest.json 上定义了 'inject.js'。一旦 'inject.js' 变为 运行,它就会将一个新文件 'file1.js' 附加到目标页面的页眉。 'file1.js' 具有链接功能来替换和重新排序该目标页面中的某些字段,并且它也具有 'Copy' 按钮的功能,我想使用它从选项卡复制值 运行 我稍后将打开的另一个选项卡的扩展。
所以,我在 'file1.js' 而不是 'inject.js' 中定义了复制函数。如果我在 'inject.js' 中定义 'chrome.storage.sync.set' 语句,效果很好,但我 want/need 在单击按钮后执行该功能。当 'file1.js' 脚本为 运行 时该按钮出现(因为在 'file1.js' 中我创建并附加了复制按钮)所以我认为我必须在 'file1.js' 脚本中定义按钮操作,对吧?或者我可以使用我使用 'file1.js' 创建的按钮从 'inject.js' 调用函数吗?
答案:
我只是将所有内容都放入 'inject.js' 中,现在它的工作就像一个魅力。为帮助我的 wOxxOm 担保!
(查看答案了解更多信息)
答案:
我只是将所有内容都放入 'inject.js' 中,现在它的工作就像一个魅力。为帮助我的 wOxxOm 担保!
(查看答案了解更多信息)
我正在尝试创建一个 chrome 扩展,它从选项卡 A 复制一个值并将其粘贴到选项卡 B。我正在尝试使其工作,但我没有收到任何响应消息。这是我的代码:
内容-script.js
var toCopy = "Copy: I am a String";
document.getElementById('btnCopy').onclick = doCopy;
function doCopy(){
chrome.runtime.sendMessage(extId, {text: toCopy}, chrome => {
console.log('Copied ' + toCopy + '!');
});
}
var toPaste = "Get: textCopied";
document.getElementById('btnPaste').onclick = doPaste;
function doPaste(){
chrome.runtime.sendMessage(extId, {text: toPaste}, chrome => {
console.log('Pasted ' + toPaste + '!');
});
}
background.js
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
if (message.text.substring(0, 5) === "Copy:")
chrome.storage.sync.set({'textCopied': text.substring(6, text.length)}, function () {
console.log('saved!');
});
else if (message.text.substring(0, 4) === "Get:")
chrome.storage.sync.get(['textCopied'], function (items) {
console.log('Here is the copied text from before: ' + items);
});
}
上下文:
我在 manifest.json 上定义了 'inject.js'。一旦 'inject.js' 变为 运行,它就会将一个新文件 'file1.js' 附加到目标页面的页眉。 'file1.js' 具有链接功能来替换和重新排序该目标页面中的某些字段,并且它也具有 'Copy' 按钮的功能,我想使用它从选项卡复制值 运行 我稍后将打开的另一个选项卡的扩展。 所以,我在 'file1.js' 而不是 'inject.js' 中定义了复制函数。如果我在 'inject.js' 中定义 'chrome.storage.sync.set' 语句,效果很好,但我 want/need 在单击按钮后执行该功能。当 'file1.js' 脚本为 运行 时该按钮出现(因为在 'file1.js' 中我创建并附加了复制按钮)所以我认为我必须在 'file1.js' 脚本中定义按钮操作,对吧?或者我可以使用我使用 'file1.js' 创建的按钮从 'inject.js' 调用函数吗?
答案:
我只是将所有内容都放入 'inject.js' 中,现在它的工作就像一个魅力。为帮助我的 wOxxOm 担保!
(查看答案了解更多信息)
答案:
我只是将所有内容都放入 'inject.js' 中,现在它的工作就像一个魅力。为帮助我的 wOxxOm 担保!
(查看答案了解更多信息)