2013-10-17 2 views
0

내 선택 항목 중 몇 가지 옵션을 제공하기 위해 ExtJs (ExtJs 4.2) 분할 버튼이 있습니다. 각 옵션은 비즈니스 로직에 따라 리디렉션됩니다.ExtJs 스플릿 버튼 메뉴 - 새 탭에서 열기

내 질문에 : 옵션 중 하나를 마우스 오른쪽 버튼으로 클릭하고 새 탭에서 열기를 클릭하면 새 탭에 동일한 페이지가 열리고 동일한 URL 끝에 '#'이 추가됩니다. 제대로 작동하려면 어떻게해야합니까? 감사.

내의 ExtJS 코드

- 실제로 당신을 볼 수

Ext.onReady(function() { 
var but = new Ext.FormPanel({ 
    items: [{ 
     xtype: 'splitbutton', 
     text: 'Choose an action', 

     width: 250, 
     scale: 'medium', 
     rowspan: 2, 

     renderTo: Ext.getBody(), 
     margin: '5 15 15 510', 
     border: true, 
     handler: function() { 
      Ext.Msg.alert('<center><br/>Select an option from drop down menu!<center>'); 
     }, 
     menu: [{ 
      text: 'Create Student Record', 
      anchor: '100%', 
      handler: function() { 


       but.getForm().doAction('standardsubmit', { 
        target: '<_s></_s>elf', 
        method: 'POST', 
        standardSubmit: true, 
        formBind: true, 
        url: 'createrecord.jsp' 
       }) 
      } 
     }, { 
      text: 'Create Class Details', 
      anchor: '100%', 
      handler: function() { 


       but.getForm().doAction('standardsubmit', { 
        target: '_self', 
        method: 'POST', 
        standardSubmit: true, 
        formBind: true, 
        url: 'classrecord.jsp' 
       }) 
      } 
     }] 
    }); 

    Ext.create('Ext.Button', { 
     text: 'Logout', 
     margin: '-85 10 10 1200', 
     scale: 'medium', 
     renderTo: Ext.getBody(), 
     handler: function() { 
      but.getForm().doAction('standardsubmit', { 
       target: '_self', 
       method: 'POST', 
       standardSubmit: true, 
       url: 'LogoutServlet' 
      }) 
     } 


    }); 

}); 

답변

1

지금까지 수 없습니다.

새 탭에서 메뉴가 열려있는 이유는 메뉴 항목이 링크 (<a>)로 렌더링되고 브라우저가 해당 동작을 담당하기 때문입니다. 하지만 일반적인 링크는 없지만 JS 핸들러가 붙은 링크는 있습니다. 하나를 클릭하면 기본 동작이 무시되고 양식을 사용하여 POST 요청을 수행합니다. '새 탭에서 열기'를 클릭하면 JS가 작동하지 않으며 실제로 아무 것도 할 수 없습니다.

당신이 할 수있는 일은 POST 대신 메뉴 항목에 href을 제공하여 GET 요청을 사용하고 양식을 제거하는 것입니다. 그러면 효과가 있습니다.

+0

알기. 그래서 표준 제출 대신'href'를 사용 했으므로 잘 작동했습니다. 고마워, 고마워. –