如何使用 ClojureScript 打开一个新的 window?

How do I open a new window using ClojureScript?

我需要使用 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)

这对我来说适用于 CLJS 回复:

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

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

在尝试使用 set! 时,您不小心在浏览器中 "overridden" window.open window;所以 window.open 实际上不再是函数,可以调用。

在调用 window.open 并重新加载页面之前,请确保没有 set! 调用。您在 (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