我想使用clojurescript寫入擴展。是否可以使用Clojurescript或Google Closure編寫Chrome擴展程序或Web應用程序?
回答
Chrome擴展通常用HTML/CSS/JS製作,所以ClojureScript應該工作得很好,因爲它編譯爲JavaScript。話雖如此,我不認爲任何人實際上已經用ClojureScript構建了一個大的擴展。作爲一個概念證明,這裏是如何做一個簡單的警報擴展,將會說Zaboomafoo(對不起,那個名字)的一般概要:
首先安裝Leiningen和lein-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」。希望瀏覽器擴展能夠更流行一些,但這是它的一般流程。
看看this用cljs編寫的chrome擴展,它允許你通過選擇作爲例子來評估瀏覽器中的clojure代碼。
我開始了this項目,其目的是使用ClojureScript編寫Chrome擴展。
雖然greenyouse
答案確實爲您提供了一般方向,作爲ClojureScript的初學者,我在使用lein
和cljsbuild
時遇到了一些問題,並選擇首先進行基本設置。也許它會幫助別人。
旁註:我計劃將我的項目遷移到lein
和cljsbuild
,一旦我更好地理解事情。那時我會更新這個答案。
我剛剛發佈了一個簡單的瀏覽器擴展程序示例項目的一些文件一起: https://github.com/binaryage/chromex-sample
它使用CHROMEX庫: https://github.com/binaryage/chromex
免責聲明:我的圖書館作者
- 1. 使用ASP.NET或Google AppEngine的可擴展應用程序
- 2. Google Chrome擴展程序是否支持多線程編程?
- 3. Chrome擴展程序或Chrome應用程序可以訪問用戶安裝的程序嗎?
- 4. 是否可以檢測應用程序或應用程序擴展是否在「縮放」模式下運行?
- 5. 在Chrome應用程序中使用Chrome擴展程序
- 6. 從Google Chrome擴展程序啓動外部應用程序?
- 7. 是否可以使用FF插件或Chrome擴展程序從Web服務器檢入/檢出文件?
- 8. 如何編寫Google Chrome擴展程序以啓用/禁用顯示圖像?
- 9. 是否可以與Google Chrome擴展程序中的本地應用程序進行互動?
- 10. Chrome擴展程序的HTML5 sessionStorage或chrome.storage?
- 11. Chrome或Firefox擴展程序以編輯頁面?
- 12. 我可以檢查Windows流程是否從Google Chrome擴展程序運行?
- 13. 我可以用擴展程序啓動Chrome應用嗎?
- 14. 租用Chrome擴展程序?
- 15. Chrome擴展程序
- 16. Chrome擴展程序的Chrome瀏覽器應用程序行爲
- 17. 是否可以爲UWP應用程序安裝Edge擴展?
- 18. 我可以使用谷歌驅動器的Chrome擴展(不是應用程序)
- 19. Chrome擴展程序androidpublisher packageName
- 20. 是否可以「擴展」或重新使用Eclipse擴展點?
- 21. 使用Chrome用戶以外的Google用戶登錄Chrome擴展程序
- 22. PHP程序或Web應用程序
- 23. 我無法在SharePoint中創建或擴展Web應用程序?
- 24. 本地化Google Chrome Web應用程序
- 25. 是否有用Io編程語言編寫的應用程序? (或者,分發Io應用程序。)
- 26. 將angular 2 web應用程序擴展到nativescript應用程序?
- 27. 在Chrome瀏覽器擴展程序中編寫文件
- 28. 擴展程序可以檢測Google Chrome的主頁嗎?
- 29. Google Chrome擴展程序Hello World
- 30. Google Chrome擴展程序中的Flex
似乎像這個項目(goranjovic/chromeclojure)不使用任何ClojureScript。 Chrome擴展(用普通JavaScript編寫)發送選定的Clojure代碼到外部Clojure JVM進程,並將結果返回給瀏覽器。我不認爲這真的是海報正在尋找的東西。 – Aaron 2013-08-17 04:35:20