ответ

21

Расширения Chrome, как правило, сделаны с использованием HTML/CSS/JS, поэтому ClojureScript должен работать нормально, потому что он компилируется на JavaScript. Это, как говорится, я не думаю, что кто-то на самом деле построил большое расширение с ClojureScript. В качестве доказательства концепции здесь приводится общая схема того, как сделать простое расширение оповещения, которое скажет Zaboomafoo (извините за это имя):

Сначала установите Leiningen и lein-cljsbuild. Прочтите документы для lein-cljsbuild и посмотрите wiki on ClojureScript, чтобы понять, как использовать lein-cljsbuild для проектов и компиляции.

Создайте файл ClojureScript, который отображает предупреждение о том, "Zaboomafoo", как это:

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

Compile это с 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 расширение chrome, написанное в cljs, которое позволяет вам использовать код eval clojure в браузере путем выбора в качестве примера.

+1

кажется как этот проект (goranjovic/chromeclojure) не использует ClojureScript. Скорее расширение Chrome (написанное на обычном JavaScript) отправляет выбранный код Clojure на внешний JVM-процесс Clojure и возвращает результат браузеру. Я не думаю, что это действительно то, что искал плакат. – Aaron

0

Я начал проект this с целью написания расширения Chrome с использованием ClojureScript.

В то время как ответ greenyouse дает вам общие указания, как новичок в ClojureScript. У меня возникли проблемы с использованием lein и cljsbuild, и я решил сначала перейти к базовой настройке. Может быть, это поможет кому-то.

Sidenote: Я планирую перенести свой проект на lein и cljsbuild после того, как я понял вещи лучше. В этот момент я обновлю этот ответ.

 Смежные вопросы

  • Нет связанных вопросов^_^