繁体   English   中英

如何通过 javascript 单击 Dynamics 365 功能区按钮

[英]How to click Dynamics 365 Ribbon Button via javascript

我想弄清楚如何单击 D365 功能区上的按钮。 该按钮将刷新页面,我将走这条路线,因为最终我想刷新页面上的所有元素。 我尝试通过查询选择器访问但没有运气

document.querySelector("#rr_jobprofile\\|NoRelationship\\|Form\\|Mscrm\\.Modern\\.refreshCommand72 > button").click();

D365 丝带按钮

按钮用 html

<button aria-label="Refresh" aria-hidden="true" title="Refresh" tabindex="-1" data-id="rr_jobprofile|NoRelationship|Form|Mscrm.Form.rr_jobprofile.RefreshModernButton" data-lp-id="Form:rr_jobprofile-rr_jobprofile|NoRelationship|Form|Mscrm.Form.rr_jobprofile.RefreshModernButton" type="button" class="pa-ak pa-kx pa-go pa-ep pa-aj pa-om pa-at pa-sx pa-sy flexbox"><span class="pa-az pa-ah pa-a pa-hh "><span class="pa-ho pa-hj pa-st pa-cd pa-bd pa-a pa-at "><img src="/uclient/resources/images/Refresh.svg?v=1.4.2043-2012.2" alt="" title="" class="pa-oh pa-cg pa-bd pa-cc "></span><span aria-label="Refresh" tabindex="-1" class="pa-hj pa-bd pa-st pa-v pa-e pa-cm pa-oz pa-cl ">Refresh</span></span></button>

真的真的真的建议不要操纵或导航 DOM。 formContext.Controls 集合中有一些方法可以刷新页面上需要它的任何控件或页面本身。 刷新 HTML web 资源不太明显,但我使用控件的 getSrc() 和 setSrc() 函数取得了很好的成功。 这个 function(不是我的,我几年前在一些博客上得到它并将它添加到我的工具箱中)工作得很好,并且可以在表单(例如加载或更改)和功能区上工作。

function refreshWebResource(executionContext, WebRrscName) {    
    var _crmForm = executionContext.getFormContext();
    var webResource = _crmForm.getControl(WebRrscName);
    if (webResource != null) {
        var webResourceSrc = webResource.getSrc();
        webResource.setSrc(null);
        webResource.setSrc(webResourceSrc);
    }
}

尝试

document.querySelector('[data-id="rr_jobprofile|NoRelationship|Form|Mscrm.Form.rr_jobprofile.RefreshModernButton"]').click()

数据属性的选择器使用属性选择器语法,而不是以标签名称或字符#或 开头. . 例如

  • button[data-id=xxxx]选择一个data-id属性值正好是xxxx的按钮。

  • button[data-id|=xxxx]选择data-id attribute value starts with按钮。

    `

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM