我试图设计一个Chrome扩展程序,热键和#34;重复标签&#34 ;;除了在这个特定的编码领域获得经验之外我没有理由设计这个,所以如果那里已经有了扩展,我就不会那样做了。
我对清单有了基本的想法,如果不准确,我就相当接近了。但是,Javascript完全让我失望。我对回调函数进行了一些研究,并且有点了解情况,但它仍然是一个非常困难的过程。我没有足够的信息来调试。
我的逻辑是:在清单中定义一个热键动作,在后台脚本中监听它。识别后,执行代码(chrome.tabs.duplicate(tabID)
)。但是,当我保存代码并使用解压缩或打包在Chrome中的扩展程序时,键盘快捷方式不执行任何操作。我尝试更改各种输入的快捷方式,我重新启动了浏览器并尝试打包和解压缩,我已经调出详细信息选项卡,菜单中没有识别出监听器,尽管我的脚本似乎正在运行。
有人能指出我正确的方向吗?我已经在这工作了6到7个小时,似乎无法找到解决方案。提前感谢您的任何时间或精力。
相关代码:
{
"manifest_version": 2,
"author": "whims1",
"name": "dupliTab",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_title": "Ctrl+Shift+F"
},
"background": {
"scripts": ["duplicate.js"],
"persistent": false
},
"permissions": [
"activeTab"
],
"commands": {
"toggle-feature-duplicate": {
"suggested_key": {
"default": "Ctrl+Shift+F",
"mac": "Command+Shift+F"
},
"description": "Duplicate the active tab"
},
"_execute_browser_action": {
"suggested_key": {
"windows": "Ctrl+Shift+F",
"mac": "Command+Shift+F",
"chromeos": "Ctrl+Shift+F",
"linux": "Ctrl+Shift+F"
}
}
}
}
duplicate.js:
chrome.commands.onCommand.addListener(function(command) {
loadRun();
});
function loadRun() {
$.getScript("run.js");
run();
}
run.js:
function run() {
chrome.tabs.query({active:true, currentWindow: true}, function(arrayOfTabs) {
var currentTabId = arrayOfTabs[0].id;
});
chrome.tabs.duplicate(currentTabId);
}
HTML弹出窗口:
<!DOCTYPE html>
<html>
<head>
<title>Popup</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>DupliTab</h1>
<p>Press Ctrl+Shift+F to duplicate the active tab.</p>
</body>
</html>