问题标签 [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.

0 投票
0 回答
169 浏览

haskell - 使用带有反射的 Web 组件 HTML 标记

我尝试在 Reflex 中使用 Web 组件。代码是这样的:

对于 ui5-button 它按预期工作。其他 Web 组件触发 Reflex.Dom.Widget.Basic 中未定义的事件,例如“liveChange”。

我怎样才能将这些转化为反射事件?

0 投票
0 回答
123 浏览

javascript - 无法在 GHCJS 中触发`dispatchEvent`

目标是window.addEventListener("popstate", ...从 GHCJS 代码调度的事件中触发。


到目前为止尝试过

GHCJS.DOM 不起作用

Language.Javascript.JSaddle 不起作用

FFI 不工作

调试输出

这确实有效:

并产生有趣的结果

在此处输入图像描述

如您所见,JSVals 是正确的,我们可以在 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

0 投票
1 回答
55 浏览

haskell - 如何将 Javascript 对象转换为 JSVal

我正在使用 Miso 开发我的第一个 GHCJS Web 应用程序,但我一直坚持如何将 GHCJSObject类型转换为 aJSVal以进一步使用它。我根本找不到有关如何执行此操作的任何信息...

任何帮助表示赞赏。

0 投票
0 回答
31 浏览

ghcjs - 如何在 Reflex 中获取全局 keydown 事件?

我目前尝试获取全局按键事件(例如:用户从 UI 中的任何位置点击键盘快捷键以触发模式对话框的打开)是:

但是,这无法进行类型检查

查看源代码,只有Element EventResult d t一个实例,但没有Windowor Document

在 reflex / ghcjs 中实现我在这里想要做的事情的惯用方式是什么?

0 投票
1 回答
56 浏览

haskell - 有没有办法查看每个模块的编译时间?

我已经尽我所能搜索了 ghc 用户手册,但我无法找到一种方法让 ghc 在编译每个模块时打印它的时间。

0 投票
0 回答
31 浏览

haskell - 如何设置我可以在 IDEA 中工作的 GHCJS 项目?

我正在使用IntelliJ Haskell,它将 Haskell 支持添加到 IntelliJ IDEA。我相信该插件仅支持堆栈。

我只发现一些旧的 ghcjs 堆栈选项似乎不起作用。

那么,如何创建/设置一个通过 GHCJS 编译为 JavaScript可以在 IDEA 中工作的新项目?

0 投票
0 回答
77 浏览

haskell - Haskell GHCJS with Diagrams 给出错误:没有为此平台提供 C 编译器

我正在尝试使用 Reflex 和 Diagrams 构建 POC。我将 WSL2 与 Ubuntu-20.04 一起使用。我使用了Reflex-stone模板,它构建得很好。然后我将 diagrams-lib 添加到依赖项列表中,并收到此错误。

我得到了一些帮助,有人建议这可能是一个需要 c 的测试。所以我将此添加到我的 project.nix

但没有任何效果。存在一个 Diagrams-Reflex repo,但我也无法构建它。不过,我对 Nix 很陌生。

0 投票
1 回答
47 浏览

javascript - gchjs-dom安装问题:安装jsaddle-dom内存不足

我试图用 cabal 或 stack 安装 ghcjs-dom,但我不能排除 jsaddle-dom。特别是,通过进行“堆栈构建”,它也尝试安装 jsaddle-dom,但我的操作系统在此过程中内存不足。我该如何解决?自述文件要求执行以下操作:

在此处输入图像描述

但我做不到。

用 cabal (cabal build) 编译,错误是:

在此处输入图像描述

如果我用堆栈编译(堆栈构建),错误是:

在此处输入图像描述

我的 .cabal 具有以下构建依赖项:

0 投票
1 回答
211 浏览

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 一起使用?

0 投票
1 回答
64 浏览

haskell - 在 Haskell 中管理事件

我目前正在 Haskell 中使用 GHCJS.DOM/JSDOM,目的是创建一个小型 Web 应用程序。为了捕获“单击按钮”事件,我编写了以下代码:

(这是取自页面https://hackage.haskell.org/package/jsaddle-dom-0.9.4.1/docs/JSDOM-EventM.html的示例);问题如下:如果我删除了最后一行(所以我删除了 releaseAction),那么我可以多次单击“元素”,然后根据需要多次触发事件。另一方面,如果我不删除最后一行,这会取消事件,甚至阻止我触发单个事件。我的目标是让用户只点击一次“元素”,然后这个事件必须被禁止。我怎样才能完成这项工作?谢谢。