2015-11-19 76 views
3

我有下面的代码,在一个新的扩展我的工作:的addListener到chrome.commands.onCommand从ClojureScript不触发功能

(.addListener js/chrome.alarms.onAlarm (fn [alarm] (.log js/console alarm))) 
(.addListener js/chrome.commands.onCommand (fn [command] (.log js/console command))) 
(.addListener js/chrome.browserAction.onClicked (fn [] (.log js/console "clicked!"))) 

:cljsbuild看起来是这样的:

{:id "background" 
:source-paths ["src/folder/background"] 
:compiler {:output-dir "resources/public/js/compiled/background" 
      :output-to "resources/public/js/compiled/background/background.js" 
      :main folder.background.background 
      :optimizations :advanced 
      :pretty-print true 
      :source-map "resources/public/js/compiled/background/background.js.map" 
      :externs ["resources/public/js/chrome_extensions.js"]}} 

代码完全按照所示顺序排列。奇怪的是,第一和第三行工作,而第二行什么都不做。我manifest.json(相关部分)看起来像这样(没有解析错误):

"background": { 
    "scripts": [ 
    "path/to/compiled/file.js" 
    ] 
}, 
"permissions": [ 
    "alarms", 
    "commands" 
], 
"commands": { 
    "do-something": { 
    "suggested_key": { 
     "default": "Alt+Shift+D" 
    }, 
    "description": "Do it!" 
    } 
} 

我公司拥有先进的编译和我有正确的extern文件(测试过这不可能是问题)。

最后但并非最不重要的是,我做了一个JavaScript版本,同样的工作。怎么会这样??

chrome.commands.onCommand.addListener(function (command) { 
    console.log(command); 
}); 

在此先感谢!

+0

看看编译的脚本,并将其与工作版本进行比较。 – wOxxOm

+0

我这样做了,输出是一样的!这是最奇怪的部分。也许我的':cljsbuild'有问题?我不知道还有什么可以看的。将尝试构建一个仅使用'cljs.jar'的原始版本来查看我是否有幸运。 – marcelocra

+0

确实这似乎与我的设置有关。我只使用'cljs.jar'设法使命令按预期执行。我会多挖一点,看看能否找出问题的根源。 – marcelocra

回答

0

事实上,它似乎与我的设置有关。

我放弃了我用的是以前的设置(与leincljsbuild),并且仅使用cljs.jar(看看在repo)作为Quickstart建议从头开始。

我会从头建立这个,直到我找出问题所在。那么我可以在这里发布它,以防没有人首先找到解决方案。

谢谢!