我有一个想要通过 jQuery 修改的 infopath 表单。唯一的问题是它在页面 DOM 加载后加载,所以 jQuery 的标准 $(document).ready(handler); 在这里不起作用。我的问题是有没有办法拉出某种 $(infopath).ready(handler); ,或者有一种方法可以等待 infopath 表单完成加载,而不仅仅是使用标准的 setTimeout()

编辑 1 :所以您有更多信息,jQuery 位于内容编辑器 Web 部件 (CEWP) 中,而 Infopath 表单位于 Infopath 表单查看器 Web 部件中。

我知道在 infopath 中使用 jQuery 或 javascript 不是一种标准做法,不幸的是,由于 infopath 重复选项控件的非理想功能,它在这种情况下是必要的,在 this question 中进一步讨论。

编辑 2: 据我所知,我很可能是错的,sharepoint 有一个名为 core.js 的 js 文件,它似乎具有通过 AJAX 将信息路径表单加载到页面中的功能。有什么办法可以设置一个 jQuery 函数在远程 javascript 文件完成执行后采取行动?

最佳答案

像这样尝试:
在 FormServer.aspx 中,就在 上方,输入:

<script type="text/javascript">
    _InfoPath.OnLoad2 = function() {
        _InfoPath.OnLoad();
        //Here I will put my custom javascript code, which will be invoked after loading InfoPath form
    }
    window.onload = _InfoPath.OnLoad2;
</script>

我的回答也在这里:
How to check if InfoPath form was loaded (in javascript)

关于用于信息路径表单的 jQuery .ready()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6861763/

10-11 23:45