回答

21

Chrome擴展通常用HTML/CSS/JS製作,所以ClojureScript應該工作得很好,因爲它編譯爲JavaScript。話雖如此,我不認爲任何人實際上已經用ClojureScript構建了一個大的擴展。作爲一個概念證明,這裏是如何做一個簡單的警報擴展,將會說Zaboomafoo(對不起,那個名字)的一般概要:

首先安裝Leiningenlein-cljsbuild。閱讀lein-cljsbuild的文檔並查看wiki on ClojureScript瞭解如何使用lein-cljsbuild進行項目和編譯。

作出這樣的顯示警告說:「Zaboomafoo」像這樣的ClojureScript文件:

(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

看看this用cljs編寫的chrome擴展,它允許你通過選擇作爲例子來評估瀏覽器中的clojure代碼。

+1

似乎像這個項目(goranjovic/chromeclojure)不使用任何ClojureScript。 Chrome擴展(用普通JavaScript編寫)發送選定的Clojure代碼到外部Clojure JVM進程,並將結果返回給瀏覽器。我不認爲這真的是海報正在尋找的東西。 – Aaron 2013-08-17 04:35:20

0

我開始了this項目,其目的是使用ClojureScript編寫Chrome擴展。

雖然greenyouse答案確實爲您提供了一般方向,作爲ClojureScript的初學者,我在使用leincljsbuild時遇到了一些問題,並選擇首先進行基本設置。也許它會幫助別人。

旁註:我計劃將我的項目遷移到leincljsbuild,一旦我更好地理解事情。那時我會更新這個答案。

相關問題