我正在尝试创建一个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()来解决这个问题,但这不是一个可靠的解决方案。
答案 0 :(得分:0)
尝试在输入文字后添加:
<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下你会创建一个包含文件yourPlugin.js的子目录js:
window.onload=function() {
var ipInput = document.querySelector('input[name=ip]');
// Do some intialization with ipInput.
}