Javascript 覆盖Salesforce页面中的标准按钮

Javascript 覆盖Salesforce页面中的标准按钮,javascript,salesforce,apex-code,visualforce,Javascript,Salesforce,Apex Code,Visualforce,我试图覆盖Salesforce页面中的标准按钮(删除)。我用Visualforce页面覆盖了它,但我面临的问题是弹出窗口拦截器 覆盖该按钮的目的是询问用户是否要删除该文件,并在第三方主机上进行删除 是否有任何方法可以停止弹出窗口阻止程序或使用其他覆盖方法? 我的visualforce页面包含一个js脚本,它将打开一个弹出窗口。我想知道我是否可以把这个js脚本放在另一个地方 <apex:page standardController="" showheader="false" sidebar

我试图覆盖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>

var caseStatus=“{!s_uuc}”;
试一试{
sforce.connection.sessionId=“{!$Api.Session_ID}”;
var isPortalUser=sforce.apex.execute('e','r',{});
}捕获(e){
警报(e)
}
如果(案例状态=“A”){
window.open({!$Label.FTP\u Attachment\u Pro\u URL}/sforce/FTP/Delete.aspx?ID={!ENZ\uu FTPAttachment\uu c.ID}&OrgID={!$Organization.ID}&SFUrl={!$Label.API\u URL}/{!$Organization.ID}&SFSessionID={!$API.Session ID},500600);
window.location='{!$Label.SF_Base_URL}/{!ENZ_uftpattachment_uc.Case_uc}';
}
否则{
window.location='{!$La}';
窗口警报(“a”+案例状态);
} 

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

如果您不想要一个别致的确认框,可以使用javascript确认函数

if (confirm('are you sure you want to delete?')) {
  // delete
} else {
  // error
}
如果您需要一种奇特的方式来请求它,请使用一个模式框,就像在网上看到的那样,网上有许多易于使用的模式框,可以与其他库一起使用,也可以不使用任何模式框(jqueryui链接只是为了说明对话框)

这是一个很好的示例,带有一个示例作为确认模式框(页面上的最后一个示例)


您是否正在使用确认()函数还是弹出窗口?因为我认为前者不应该被阻止。请再次检查问题。我添加了用于覆盖的salesforce页面。很抱歉,我删除了隐私问题的所有参数。谢谢。很抱歉,我没有明确说明我的问题。my window.Open方法打开一个asp.net页面,其中包含传递的变量,以删除所选文件。我将添加完整的窗口。打开问题中的部分。请再次检查。谢谢。这是无关的,只要您使用窗口。打开弹出窗口拦截器将停止您的页面。正如我所说,您唯一的出路是使用模式框,您可以在其中加载ASP页面,如果您愿意。模式框还可以包含iframe,以便您可以加载您想要的任何内容。弹出窗口阻止程序查找window.open调用并取消它们,除了更改内容的显示方式外,别无其他方法。我无法在iframe中加载asp.net页面。我使用的方法与他们在演示中使用的方法相同。如果我对链接进行硬编码,页面将正常工作,但如果我使用的变量具有基于每个项目的值,则page不工作。我还尝试将我的src设置为www.google.com,iframe没有显示任何内容。