0

下面的 JS 会相应地运行,但它永远不会到达最后一个函数 (showAllTabIdRedirect)。知道为什么吗?是我的语法吗?我正在尝试运行第一个获取主选项卡 ID 的函数,然后使用它传递一些其他函数。最后,我将重定向用户并刷新特定选项卡。

    <script>
        
         function refreshDetailsTab() {
            sforce.console.getEnclosingPrimaryTabId(focusDetailSubtabRedirect);
            
            var formsId;
            
            var currentUrl = window.location.href;

            if (currentUrl) {
                formsId = currentUrl.split('?formId=')[1];
            } else {
                return;
            }
            
            window.location = '/' + formsId;
            debugger;
                         
         };
         
         sforce.console.getEnclosingPrimaryTabId(focusDetailSubtabRedirect);
         
        var focusDetailSubtabRedirect = function showTabIdRedirect(result) {
            // window.onload = function showTabIdV1(result) {
            //alert('2222');
            var primaryTabID = result.id;
            
            sforce.console.getSubtabIds(primaryTabID , showAllTabIdRedirect);
            debugger;
        }

         var showAllTabIdRedirect = function showAllTabIdRedirect(result2) {
            // alert('33333');
            var firstSubTab  = result2.ids[0];
            
            sforce.console.refreshSubtabById(firstSubTab, false);
            debugger;
            //alert('Subtab IDs=====: ' + result.ids[0]);
        }; 
                    
    window.onload = refreshDetailsTab;
    
    </script>  

4

2 回答 2

0

我认为这与 window.location 首先触发有关。它在其他 JS 加载之前重定向用户。

于 2017-07-20T06:19:04.790 回答
0

您可以检查这些方法是否成功完成。'getSubtabIds' 可能由于某种原因暂停,这将导致调用回调函数 'showAllTabIdRedirect' 失败。

请参阅此处的文档以获取 getSubtabIds

于 2017-07-20T04:13:55.967 回答