在Jenkins作业配置页面中,当我的自定义构建步骤添加到作业配置页面时,如何调用JavaScript函数

In Jenkins job config page, how to call a JavaScript function when my custom build step is added in the job config page?

本文关键字:配置 作业 何调用 调用 函数 JavaScript Jenkins 我的 自定义 构建 添加      更新时间:2023-09-26

我正在尝试创建一个Jenkins构建步骤插件。在config.jelly中,我想在页面中添加构建步骤后立即用JavaScript进行一些初始化。

我的config.jelly看起来是这样的:

<f:entry title="IP" field="ip">
    <f:textbox name="ip"/>
</f:entry>
...
<script type="text/javascript">
    var ipInput = document.querySelector('input[name=ip]');
    // Do some intialization with ipInput.
</script>

然而,Jenkins似乎在不同阶段解析HTML和JavaScript内容,ipInput在上面的JavaScript片段中总是返回null。

我可以通过使用setTimeout()来解决这个问题,但这不是一个可靠的解决方案。

尝试在文本输入后添加:

<st:once>
    <script type="text/javascript">
        var ipInput = document.querySelector('input[name=ip]');
        // Do some intialization with ipInput.
    </script>
</st:once>

如果这不起作用,另一种方法是将javascript放在一个单独的文件中,例如在config.jelly中添加以下内容:

<st:once>
    <script type="text/javascript" src="${rootURL}/plugin/yourPlugin/js/yourPlugin.js" />
</st:once>

然后在src/main/webapp下创建一个子目录js,其中包含一个文件yourPlugin.js:

window.onload=function() {
    var ipInput = document.querySelector('input[name=ip]');
    // Do some intialization with ipInput.
}