删除工作流在视图上添加的按钮

Remove button added by Workflow on View

我想问一下是否可以在记录的查看模式下隐藏由工作流添加的按钮。工作流已锁定,因此无法选择停用操作。

我正在尝试使用加载前的用户事件脚本在记录的查看模式下调用客户端脚本。代码是这样的:

具有 form.setScript 的用户事件脚本。

//User Event Script
function callClientScript(type, form) {
    if (type == 'view') {
        form.setScript('customscript_client_script');
    }
}

客户端ID:customscript_client_script:

//Client Script
function removeButton() {
    document.getElementById('HTML Id of button to hide').style.display = 'none';
}

不幸的是,这不起作用。我已经研究过,我发现的所有示例都使用一个按钮来绑定客户端脚本,因此在单击时 运行s。他们在用户事件脚本中添加了这行代码:

form.addButton('custpage_my_button', 'Button Test', 'removeButton()');

我测试了这个,它工作正常。但是,我需要在页面加载后自动 运行 "removeButton()" 函数。

要实现这一点,您需要对 DOM 进行一些黑客攻击。您需要使用在 beforeLoad 期间创建的 inlineHTML 正文字段注入 javascript,并将您的客户端脚本代码作为设置为默认值并被 <script> 标记包围的字符串。

Suitescript 2.0 中的类似内容:

var injectScriptField = form.addField({
        id : 'custpage_injectscript',
        type : UIMODULE.FieldType.INLINEHTML,
        label : 'Inject Script Field'
    });
injectScriptField.defaultValue = '<script>alert("Hello");</script>';