2

我需要使用 ClojureScript 打开一个新选项卡。

(js/window.open "http://localhost/go/somewhere")

我收到以下错误:未捕获的类型错误:window.open 不是函数

它没有帮助设置它,因为没有任何反应,我认为这是因为它是一个函数而不是一个变量。

(set! js/window.open "http://localhost/go/somewhere")

我知道这是可能的,因为我一开始就做对了。从那以后我忘记了我做了什么。

编辑:也试过:

(set! js/window.location.open endpoint)

(set! (js/window.location.open -location) endpoint)

(set! (.. js/window.location.open -location) endpoint)
4

2 回答 2

3

随着您的尝试,您的浏览器窗口set!意外地“被覆盖”了;window.open所以window.open实际上不再是一个可以调用的函数。

set!在您打电话window.open并重新加载您的页面之前,请确保您没有接到电话。您使用的语法(js/window.open ,,,)是正确的。

(js/window.open "https://example.com") ; works
(set! js/window.open "https://example.com")
(js/window.open "https://example.com")
; ⇒ TypeError: window.open is not a function
于 2019-11-12T08:41:52.190 回答
2

这适用于我的 CLJS repl:

 (.open js/window "https://www.clojure.org")

但我必须确保允许弹出窗口:

在此处输入图像描述

于 2019-11-12T08:32:48.113 回答