问题标签 [js-of-ocaml]

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

javascript - 如何构造一个js对象并用js_of_ocaml调用它的方法?

我尝试使用 js_of_ocaml 构建应用程序。假设我在 javascript 中有以下代码:

如何在 OCaml/js_of_caml 中编写与下面的 js 代码具有相同效果的代码?

我试着写一些类似的东西:

构造函数被调用,但我有以下错误,所以它似乎不是正确的方法。我也尝试过 Js.Unsafe.meth_call 函数,但效果并不好。

任何帮助,将不胜感激。

0 投票
2 回答
142 浏览

javascript - 更新 html 滑块属性但在页面中不可见

我有一个 html 滑块,我想动态更改滑块上光标的位置。

看看我的 jsfiddle 演示:http://jsfiddle.net/8DCS6/

我将最大值设置为 14,然后我有一个按钮。当我单击按钮时,我想更改光标的位置,为此,我将属性值更改为 10,但光标不移动。但是,如果我单击光标,光标会移动,但这并不是我真正想要的,因为我只想更改属性值并查看光标的移动。

有人有这样做的想法吗?

我只搜索纯 javascript 解决方案,因为我使用的是 js_of_ocaml ( http://ocsigen.org/js_of_ocaml/ )。我想要一个 javascript 来翻译 js_of_ocaml。

0 投票
1 回答
409 浏览

ocaml - 使用 OCaml 编组数据的通信客户端-服务器

我想用 OCaml 中的服务器做一个客户端 js_of_ocaml 应用程序,具有下面描述的约束,我想知道下面的方法是否正确或者是否有更有效的方法。服务器有时可以发送大量数据(> 30MB)。

为了使客户端和服务器之间的通信更安全、更高效,我在 .mli 文件中共享一个类型 t ,如下所示:

然后,这种类型被编组为一个字符串并在网络上发送。我知道在客户端,缺少某些类型(Int64.t)。

此外,在客户端发送的 XMLHTTPRequest 中,我们希望从服务器接收多个编组对象,有时以流模式(即:loading在请求状态期间处理接收到的编组对象(如果可能),而不是仅在done状态期间)。

这些约束迫使我们将responseTextXMLHTTPRequest 的字段与 content-type 一起使用application/octet-stream

此外,当我们从 中取回响应时responseText,由于 JavaScript 的字符串是 UTF-16 格式,因此会进行编码转换。但是编组的对象是二进制数据,我们做必要的事情来检索我们的二进制数据(通过覆盖字符集x-user-defined并在字符串的每个字符上应用掩码responseText)。

服务器(OCaml 中的 HTTP 服务器)正在做一些简单的事情,如下所示:

但是,在客户端,js_of_ocaml 的实际 JavaScript 原语caml_marshal_data_size需要一个 MlString。但是在流模式下,我们不想将 javascript 的字符串转换为 MlString(它可以在完整的字符串上迭代),我们更愿意只进行大小验证和解组(以及对编码问题应用掩码)在读取的字节上。因此,我用 javascript 编写了自己的元帅原语。

处理请求和响应的客户端代码是:

原语是:

这是将大型 OCaml 值从服务器传输到客户端的最有效方式,还是节省时间和空间的替代方案?

0 投票
1 回答
285 浏览

ocaml - 如何设置 Dom 元素的属性

我创建了一个带有调用的 td 元素,例如:

我现在想在这个对象上设置一个属性。我试过这个:

但我得到了错误:

错误:此表达式的类型为 Dom_html.tableCellElement Js.t
它没有方法 setAttribute

0 投票
1 回答
178 浏览

ocaml - 如何触发和处理点击事件?

在以下代码中,我尝试处理复选框上的单击事件。我希望在 javascript 控制台中看到“hello”这个词,但我什么也没看到。如何修改代码以执行打印语句?

0 投票
1 回答
266 浏览

ocaml - 如何调用 js_of_ocaml 方法?

我有一个单行 js_of_ocaml 程序:

失败并出现错误:

我如何调用这个方法?

0 投票
1 回答
1107 浏览

ocaml - 通过 ocamlbuild/ocamlfind 链接库

我有一个名为 ojasmine 的本地固定 OPAM 项目,我想将其编译为一个库,供另一个名为 test_tournabox 的项目使用(最终编译为 javascript)。但是,test_tournabox 的编译因链接错误而失败。

我编译 ojasmine 如下,给出目标 ojasmine.cma:

然后我像这样安装它:

我觉得奇怪的是 ojasmine.cma 不在我的项目目录中,而是在 _build 目录中。

输出是:

接下来,我cd到我的 tournabox 项目并尝试构建测试套件:

这失败并出现错误:

似乎 ojasmine.cma 没有链接到可执行文件 test_tournabox.byte。但我希望 ocamlfind 的 -linkpkg 参数可以安排这一点。我错过了什么?

编辑:这是 META 文件:

这是ocamlobjinfo:

ocamlfind 看到它:

这里是:

这是 ojasmine.ml:

和 ojasmine.mli:

0 投票
2 回答
361 浏览

curl - Js_of_ocaml:调用 ocurl 和 str 时缺少原语

我正在使用包 curl 来发出 Http 请求(以及使用正则表达式的包 str)。我正在我的项目中编译文件,没问题,当我用 js_of_ocaml 编译 file.byte 时,我有这些错误:

js_of_ocaml --禁用 genprim foo.byte

当我包含生成的 js 文件时,我在 Web 控制台中出现此错误: Uncaught ReferenceError: helper_curl_global_init is not defined

我知道缺少原语,这导致了我遇到的错误,但是有解决方案来解决这个问题吗?

0 投票
1 回答
160 浏览

javascript - Js_of_ocaml - 获取 cookie 时出错

我是 XmlHttpRequest 为了发出 http 请求,我想获取 cookie。获取 cookie 的代码:

cookie 应该在标题中,我收到此错误:拒绝获取不安全的标题“Set-Cookie”

这是我弄错cookie的方式还是我的网络浏览器有问题(我使用的是铬)?

0 投票
1 回答
465 浏览

javascript - 如何使用 js_of_ocaml 添加 onclick 方法?

嗨,假设我有一个带有 id 的按钮,form-submit并且我的 OCaml 文件中有以下功能:

向按钮添加 on_click 方法的正确方法是什么?我应该做这样的事情吗?

但是处理函数的类型是什么?我在文档中找不到它。