是否可以使用Clojurescript或Google Closure编写Chrome扩展程序或网络应用程序?

时间:2013-03-01 16:59:13

标签: google-chrome-extension clojure google-closure clojurescript

我想用clojurescript编写chrome扩展名。

4 个答案:

答案 0 :(得分:22)

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

首先安装Leiningenlein-cljsbuild。阅读lein-cljsbuild的文档并查看wiki on ClojureScript以了解如何将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>

的manifest.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”的警报。希望使浏览器扩展变得更受欢迎,但这是它的一般流程。

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:0)

我启动了this项目,目的是使用ClojureScript编写Chrome扩展程序。

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

旁注:我计划将项目迁移到leincljsbuild,一旦我了解得更好。那时我会更新这个答案。

答案 3 :(得分:-1)

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