首页 文章

覆盖Salesforce页面中的标准按钮

提问于
浏览
0

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

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

有什么方法可以阻止弹出窗口阻止程序或使用另一种重写方法吗?我的visualforce页面包含一个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>

1 回答

  • 1

    不要使用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/

相关问题