Window.close не работает на странице Ссылка на метод Apex

У меня есть метод ссылки на страницу в контроллере вершины. Мне нужно закрыть текущую вкладку.

Вот мой код:

public PageReference savePostSurveyAnswer(){
        String sitePathPrefix = Site.getPathPrefix();
        System.debug('savePostSurveyAnswer method start');

        CaseIdentifierIdValue = ApexPages.currentPage().getParameters().get('caseIdentifierId');


        ShGl_PostChatSurvey__c postChatSurvey = new ShGl_PostChatSurvey__c(); 
        postChatSurvey.ShGl_SurveyQuestion1__c = question1;
        postChatSurvey.ShGl_SurveyQuestion2__c = question2;
        postChatSurvey.ShGl_SurveyQuestion3__c = question3;
        postChatSurvey.ShGl_SurveyQuestion4__c = question4;
        postChatSurvey.ShGl_SurveyResponse1__c = questionAnsSelected1; 
        postChatSurvey.ShGl_SurveyResponse2__c = questionAnsSelected2; 
        postChatSurvey.ShGl_SurveyResponse3__c = questionAnsSelected3; 
        postChatSurvey.ShGl_SurveyResponse4__c = questionAnsSelected4; 
        postChatSurvey.ShGl_Market_Code__c = 'US'; //new data base model
        postChatSurvey.ShGl_UniqueCaseIdentifier__c = CaseIdentifierIdValue;
        //postChatSurvey.ShGl_LiveTranscriptChatKey__c = chatKeyIdValue;
        //postChatSurvey.ShGl_CaseOfSurvey__c = (Id) LiveChatTranscriptObj.CaseId;   //through trigger     
        Database.SaveResult postSaveResult = Database.insert(postChatSurvey);
        return new PageReference('javascript:window.close();');
}

Заранее спасибо.

Любая помощь будет оценена по достоинству.


person Neetu    schedule 25.04.2019    source источник


Ответы (1)


Когда вы проверяете документацию для Window.close() Вы найдете причину:

Этот метод разрешено вызывать только для окон, которые были открыты сценарием с использованием метода window.open(). Если окно не было открыто скриптом, в консоли появляется ошибка, подобная этой: Скрипты не могут закрывать окна, открытые не скриптом.

Вкратце: браузер не позволит вам. Это не относится к Salesforce или VF. Windows.close() в любом случае закроет не вкладку, а все окно браузера.

Если вы хотите закрыть вкладку консоли, этот вопрос/ответ может предоставить то, что вы ищете.

person stwissel    schedule 26.04.2019