覆盖 Salesforce 页面中的标准按钮

Override a standard button in Salesforce page

本文关键字:标准 按钮 Salesforce 覆盖      更新时间:2023-09-26

我正在尝试覆盖Salesforce页面中的标准按钮(删除)。我用视觉力量页面覆盖了它,但我面临的问题是弹出窗口阻止程序。

覆盖按钮的目的是询问用户是否要删除文件并在第三方主机上进行删除。

有什么方法可以停止弹出窗口阻止程序或使用其他覆盖方法吗?我的视觉力量页面包含一个 js 脚本,该脚本将打开一个弹出窗口。我想知道我是否可以把这个 js 脚本放在不同的地方!

<apex:page standardController="" showheader="false" sidebar="false"> 
    <apex:includeScript value=""/>
    <apex:includeScript value=""/>
        <script language="javascript"> 
            var caseStatus = "{!s__c}";
            try{
                sforce.connection.sessionId = "{!$Api.Session_ID}";
                var isPortalUser = sforce.apex.execute('e','r',{}); 
            }catch(e) {
                alert(e)
            }
                if(caseStatus == "A"){
                window.open('{!$Label.FTP_Attachment_Pro_URL}/sforce/ftp/Delete.aspx?ID={!ENZ__FTPAttachment__c.Id}&OrgID={!$Organization.Id}&SFUrl={!$Label.API_URL}/{!$Organization.Id}&SFSessionID={!$Api.Session_ID}',500,600);
            window.location = '{!$Label.SF_Base_URL}/{!ENZ__FTPAttachment__c.Case__c}';
            }
               else{
                    window.location = '{!$La}';
                    window.alert("a"+ caseStatus);
                } 
    </script> 
</apex:page>

不要使用 window.open,因为它是一个弹出窗口,可能会被阻止。

如果你不想要一个花哨的确认框,你可以使用javascript确认功能

if (confirm('are you sure you want to delete?')) {
  // delete
} else {
  // error
}

如果您需要花哨的方式来请求它,请使用模态框,而不是如 http://jqueryui.com/demos/dialog/上看到的那样,网上有许多易于使用的可用库,可以与其他库一起使用或没有任何库(jqueryui 链接仅用于说明对话框。

这是一个很好的演示作为确认模态框(页面上的最后一个演示)

http://www.ericmmartin.com/projects/simplemodal-demos/