如何等待创建/编辑实体模式窗口完成渲染并在 2sxc 模块中执行我的自定义 js 代码?
Posted
技术标签:
【中文标题】如何等待创建/编辑实体模式窗口完成渲染并在 2sxc 模块中执行我的自定义 js 代码?【英文标题】:How can I wait for the create/edit entity modal window to finish rendering and execute my custom js code in 2sxc module? 【发布时间】:2021-10-13 22:35:45 【问题描述】:当用户按下创建实体按钮或编辑实体按钮时,在由 js 动态构建的 iframe 中会出现相同的模态窗口。所以我要做的是等到它完全渲染然后执行我的自定义js代码。那么有没有合适的方法来做到这一点?诸如RenderFinished
射击之类的某种事件?不想使用超时,因为我知道这不是一个好方法。
到目前为止,我尝试以编程方式将 jquery 添加到页面中,因为由于某种原因,它当前没有在该特定页面上使用(可能是因为 iframe 是在没有 jquery 的情况下动态构建的,我需要自己添加它)。
之后,我尝试通过 jquery 选择器访问 iframe,然后以相同的方式访问 iframe.ready 内部元素(选择器甚至为该元素做好准备)。但是 iframe 被访问并且它里面的元素不是。就绪函数内的控制台日志只输出未找到的元素。当我在里面放置断点时,我看到还没有构建模式窗口,并且我的代码在它之前同步执行。所以在那一刻还没有什么可以找到的。
哦,当然,我试图把它全部放在$(document).ready
中。但这并没有改变现状……
有关如何正确执行此操作的任何想法?
我为什么要做所有这些复杂的舞蹈的最终目标:我正在尝试添加对实体的 UrlKey 是唯一的验证。所以我想将我的 js 函数绑定到 UrlKey 输入的 onchange
事件并调用后端 api 进行验证,如果它不是唯一的,则返回新的 UrlKey 并相应地编辑 UrlKey 输入。我偶然发现的问题是在呈现模态 iframe 窗口后执行我的代码。
非常感谢任何提示。
【问题讨论】:
【参考方案1】:你很幸运:)
2sxc 添加了一个公式功能,可以帮助您解决这个问题。有视频和教程等等。见http://r.2sxc.org/formulas
【讨论】:
非常感谢。 )以上是关于如何等待创建/编辑实体模式窗口完成渲染并在 2sxc 模块中执行我的自定义 js 代码?的主要内容,如果未能解决你的问题,请参考以下文章
导出异步等待变量并在 JS 中完成“等待”后将其导入另一个文件
ReactJs:如何在渲染之前等待 componentDidMount() 完成?
如何等待在 react.js 中渲染视图,直到 $.get() 完成?