问题标签 [ghcjs-dom]

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 投票
1 回答
89 浏览

javascript - 从 EventM 中移除当前监听器

假设我想使用 ghcjs-dom 创建一个事件侦听器,它响应单击,然后将其自身移除。

我有

添加和删​​除,以及

EventM. 如何SaferEventListener从 中访问(我稍后将构建)EventM,以便在事件发生时将其删除?

在 JavaScript 中,您使用命名函数表达式作为对 的回调addEventListener,然后removeEventListener从回调中应用到该名称。但这里似乎没有任何类似的东西是可能的。还是我错过了什么?

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 回答
47 浏览

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

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

在此处输入图像描述

但我做不到。

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

在此处输入图像描述

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

在此处输入图像描述

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

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),那么我可以多次单击“元素”,然后根据需要多次触发事件。另一方面,如果我不删除最后一行,这会取消事件,甚至阻止我触发单个事件。我的目标是让用户只点击一次“元素”,然后这个事件必须被禁止。我怎样才能完成这项工作?谢谢。