clojurescript - 如何使用 ClojureScript 打开新窗口?

标签 clojurescript clojurescript-javascript-interop

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

最佳答案

在尝试使用 set! 时,您不小心“覆盖”了浏览器窗口中的 window.open;所以 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

关于clojurescript - 如何使用 ClojureScript 打开新窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58814179/

相关文章:

clojure - 如何将 clojure.contrib.monads 转换为与 clojurescript 一起使用?

clojurescript - 有没有办法在不使用匿名函数的情况下在 Om 中创建 onClick 处理程序?

css - 如何从 Reagent 中的节点模块导入 css

clojure - 查询函数在 om.next 中返回值为 nil

用于 clojurescript 的 Angular2

clojure - 如何在 ClojureScript 中获取由 fetch API 返回的 Response 对象的正文文本?

reactjs - 使用 Shadow-CLJS 将 react-table 导入 ClojureScript

clojurescript - d3 JavaScript 到 ClojureScript 的翻译