这是为嵌入式JS库提供回调的合适方法吗?

时间:2017-05-25 17:26:53

标签: javascript jquery callback

我有一个小型SaaS产品,提供js代码以在网页上创建嵌入式表单。我将它们复制和粘贴的代码如下所示:

<div class="form-container" data-form="form-22" ></div>
<script src="https://example.com/embed-code.js" />

我想提供一个回调机制,以便在提交表单时通知他们自己的javascript。

到目前为止,我实现它的方式是告诉他们使用必需的回调函数创建一个全局变量:

var form_callbacks = {
  submitted: function(){...}
}

然后,我的嵌入代码会查找window.form_callbacks并在提供时触发它们。

我不是真正的客户端JS开发人员,但要求某人创建全局变量似乎是错误的方法。

有更标准的方法吗?

1 个答案:

答案 0 :(得分:1)

标准方法是让您的库在快速可识别的命名空间(即产品名称)中实例化全局对象,并提供方法来订阅事件。不要强迫用户声明任何全局变量。

ComExampleForms.get("form-22").subscribe("submit", function(e) {…});