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>
4

1 回答 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/

于 2012-04-25T14:25:57.710 回答