问题标签 [ghcjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 使用带有反射的 Web 组件 HTML 标记
我尝试在 Reflex 中使用 Web 组件。代码是这样的:
对于 ui5-button 它按预期工作。其他 Web 组件触发 Reflex.Dom.Widget.Basic 中未定义的事件,例如“liveChange”。
我怎样才能将这些转化为反射事件?
javascript - 无法在 GHCJS 中触发`dispatchEvent`
目标是window.addEventListener("popstate", ...
从 GHCJS 代码调度的事件中触发。
到目前为止尝试过
GHCJS.DOM 不起作用
Language.Javascript.JSaddle 不起作用
FFI 不工作
调试输出
这确实有效:
并产生有趣的结果
如您所见,JSVal
s 是正确的,我们可以在 JavaScript 控制台中运行该命令。
最近的尝试
然后我发现如果我在 之后立即抛出错误dispatchEvent
,它就会触发。
这会导致预期的结果dispatchEvent_
,但显然不会这样做,因为它会导致运行时错误。
所以我想这可能是一个syncPoint
还是没有骰子
运行代码
你可以自己试试这个
localhost:8080
在浏览器中打开,然后单击单词"ECHO"
。
相关代码:
https://gitlab.com/fresheyeball/Shpadoinkle/blob/crud-example/router/Shpadoinkle/Router.hs#L100 https://gitlab.com/fresheyeball/Shpadoinkle/blob/crud-example/examples/servant-crud /View.hs#L43
haskell - 如何将 Javascript 对象转换为 JSVal
我正在使用 Miso 开发我的第一个 GHCJS Web 应用程序,但我一直坚持如何将 GHCJSObject
类型转换为 aJSVal
以进一步使用它。我根本找不到有关如何执行此操作的任何信息...
任何帮助表示赞赏。
ghcjs - 如何在 Reflex 中获取全局 keydown 事件?
我目前尝试获取全局按键事件(例如:用户从 UI 中的任何位置点击键盘快捷键以触发模式对话框的打开)是:
但是,这无法进行类型检查
查看源代码,只有Element EventResult d t
一个实例,但没有Window
or Document
。
在 reflex / ghcjs 中实现我在这里想要做的事情的惯用方式是什么?
haskell - 有没有办法查看每个模块的编译时间?
我已经尽我所能搜索了 ghc 用户手册,但我无法找到一种方法让 ghc 在编译每个模块时打印它的时间。
haskell - 如何设置我可以在 IDEA 中工作的 GHCJS 项目?
我正在使用IntelliJ Haskell,它将 Haskell 支持添加到 IntelliJ IDEA。我相信该插件仅支持堆栈。
我只发现一些旧的 ghcjs 堆栈选项似乎不起作用。
那么,如何创建/设置一个通过 GHCJS 编译为 JavaScript并可以在 IDEA 中工作的新项目?
haskell - Haskell GHCJS with Diagrams 给出错误:没有为此平台提供 C 编译器
我正在尝试使用 Reflex 和 Diagrams 构建 POC。我将 WSL2 与 Ubuntu-20.04 一起使用。我使用了Reflex-stone模板,它构建得很好。然后我将 diagrams-lib 添加到依赖项列表中,并收到此错误。
我得到了一些帮助,有人建议这可能是一个需要 c 的测试。所以我将此添加到我的 project.nix
但没有任何效果。存在一个 Diagrams-Reflex repo,但我也无法构建它。不过,我对 Nix 很陌生。
haskell - 如何安装 ghcjs 8.8 或 8.10?
我想用 reflex-dom 生成一个 HTML / JS 页面(仅客户端,前端)。但是,我使用了单例包(2.6),它似乎无法使用 ghcjs 或 ghc 8.6.5 进行编译(单例 2.5.1,已损坏未修补)。因此,反射平台解决方案、反射石或同等产品对我没有帮助。
我看到可以通过 haskell.nix安装 ghcjs 8.8 或 8.10 ,但我没有找到如何安装。
我该怎么做?或者,有没有办法将 GHCJS(或反射平台解决方案)与最近的包(需要 ghc 8.8 或 +)一起使用?有没有办法将 ghcjs-8.8 或 8.10 与 reflex-platform 一起使用?
haskell - 在 Haskell 中管理事件
我目前正在 Haskell 中使用 GHCJS.DOM/JSDOM,目的是创建一个小型 Web 应用程序。为了捕获“单击按钮”事件,我编写了以下代码:
(这是取自页面https://hackage.haskell.org/package/jsaddle-dom-0.9.4.1/docs/JSDOM-EventM.html的示例);问题如下:如果我删除了最后一行(所以我删除了 releaseAction),那么我可以多次单击“元素”,然后根据需要多次触发事件。另一方面,如果我不删除最后一行,这会取消事件,甚至阻止我触发单个事件。我的目标是让用户只点击一次“元素”,然后这个事件必须被禁止。我怎样才能完成这项工作?谢谢。