如何编译用于PhantomJS的ClojureScript代码?
我正在尝试用ClojureScript编写PhantomJS脚本。我以节点为目标,使用phantomjs节点[1]。我有一个工作的基本例子:如何编译用于PhantomJS的ClojureScript代码?,phantomjs,clojurescript,Phantomjs,Clojurescript,我正在尝试用ClojureScript编写PhantomJS脚本。我以节点为目标,使用phantomjs节点[1]。我有一个工作的基本例子: (def phantom (js/require "phantom")) (defn -main [& args] (-> phantom (.create (fn [browser] (-> browser (.createPage (fn [page] (-> pag
(def phantom (js/require "phantom"))
(defn -main [& args]
(-> phantom
(.create (fn [browser]
(-> browser
(.createPage (fn [page]
(-> page
(.open "http://google.com" (fn [status]
(if (= status "success")
(-> page (.render "example.png")))
(-> browser .exit)))))))))))
现在,如果我使用PhantomJS网页对象的evaluate
函数[2],我会发现以下错误:
phantom stdout: ReferenceError: Can't find variable: <namespace here>
如何防止PhantomJS的webpage对象中要计算的代码被命名为CLJS名称空间?第二,我还有其他选择吗
- [1]
- [2]
js/document
而不是document
。
document
是对clojurescript变量的引用,js/document
是js世界中的一个文档。我在您的代码中没有看到document
变量。尝试js/document
而不是document
@edbond Woot!完全是这样。谢谢,请回答这个问题,这样我可以把它标记为正确的。
(defn -main [& args]
(-> phantom
(.create (fn [browser]
(-> browser
(.createPage (fn [page]
(-> page
(.open "http://google.com" (fn [status]
(println (str "opened google? " status))
(-> page
(.evaluate #(-> document .-title)
#(do
(println (str "Page title is " %))
(-> browser .exit))))))))))))))