22

我想使用 clojurescript 编写 chrome 扩展。

4

4 回答 4

23

Chrome 扩展通常使用 HTML/CSS/JS 制作,因此 ClojureScript 应该可以正常工作,因为它可以编译为 JavaScript。话虽如此,我认为还没有人真正使用 ClojureScript 构建过大型扩展。作为概念证明,这里概述了如何制作一个简单的警报扩展,它会说 Zaboomafoo(对不起这个名字):

首先安装Leiningenlein-cljsbuild。阅读 lein-cljsbuild 的文档并查看关于 ClojureScript 的 wiki,以了解如何使用 lein-cljsbuild 进行项目和编译。

创建一个 ClojureScript 文件,该文件显示一个警告说“Zaboomafoo”,如下所示:

(ns Zaboomafoo.hello)   
(js/alert "Zaboomafoo")

编译它lein cljsbuild以获取 JavaScript 文件。然后为扩展添加一个基本的 HTML 文件和 manifest.json。

Zaboomafoo.html:

<!Doctype html>
<html>
    <head>
        <title>Zaboomafoo!</title>
    </head>
    <body>
        <script type="text/javascript" src="Zaboomafoo.js"></script>
    </body>
</html>

清单.json:

{
   "name": "Displays Zaboomafoo when opening a new tab",
   "version": "0.1",
   "incognito": "split",
   "chrome_url_overrides": {
   "newtab": "Zaboomafoo.html"
  },
 "manifest_version": 2
}

将新的 manifest.json、Zaboomafoo.html 和 Zaboomafoo.js 放入一个明显的文件夹中。最后,进入chrome扩展页面,打开开发者模式,加载解压后的扩展,打开一个新标签。当您打开选项卡时,扩展程序应该会加载一个令人讨厌的“Zaboomafoo”的警报。希望让浏览器扩展变得更流行一点,但这是它的一般流程。

于 2013-03-15T05:30:41.737 回答
6

我刚刚发布了一个简单的 Chrome 扩展示例项目以及一些文档: https ://github.com/binaryage/chromex-sample

它使用 Chromex 库: https ://github.com/binaryage/chromex

免责声明:我是图书馆的作者

于 2015-11-24T17:41:49.440 回答
0

我开始这个项目的确切目的是使用 ClojureScript 编写一个 Chrome 扩展程序。

虽然greenyouse答案确实为您提供了一般指导,但作为 ClojureScript 的初学者,我在使用时遇到了一些麻烦leincljsbuild因此选择首先进行基本设置。也许它会帮助某人。

旁注:我计划将我的项目迁移到lein并且cljsbuild一旦我更好地理解了事情。那时我会更新这个答案。

于 2015-11-23T00:16:49.133 回答
-1

看看这个用 cljs 编写的 chrome 扩展,它允许您通过选择来评估浏览器中的 clojure 代码作为示例。

于 2013-05-25T23:00:40.350 回答