History.html (Case Conflict 1)
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:3k
源码类别:

中间件编程

开发平台:

JavaScript

  1. <html>
  2. <head>
  3.   <title>The source code</title>
  4.     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
  5.     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
  6. </head>
  7. <body  onload="prettyPrint();">
  8.     <pre class="prettyprint lang-js">
  9. Ext.onReady(function() {
  10.     
  11.     // The only requirement for this to work is that you must have a hidden field and
  12.     // an iframe available in the page with ids corresponding to Ext.History.fieldId
  13.     // and Ext.History.iframeId.  See history.html for an example.
  14.     Ext.History.init();
  15.     
  16.     // Needed if you want to handle history for multiple components in the same page.
  17.     // Should be something that won't be in component ids.
  18.     var tokenDelimiter = ':';
  19.     
  20.     var tp = new Ext.TabPanel({
  21.         renderTo: Ext.getBody(),
  22.         id: 'main-tabs',
  23.         height: 300,
  24.         width: 600,
  25.         activeTab: 0,
  26.         
  27.         items: [{
  28.             xtype: 'tabpanel',
  29.             title: 'Tab 1',
  30.             id: 'tab1',
  31.             activeTab: 0,
  32.             tabPosition: 'bottom',
  33.             
  34.             items: [{
  35.                 title: 'Sub-tab 1',
  36.                 id: 'subtab1'
  37.             },{
  38.                 title: 'Sub-tab 2',
  39.                 id: 'subtab2'
  40.             },{
  41.                 title: 'Sub-tab 3',
  42.                 id: 'subtab3'
  43.             }],
  44.             
  45.             listeners: {
  46.                 'tabchange': function(tabPanel, tab){
  47.                     Ext.History.add(tabPanel.id + tokenDelimiter + tab.id);
  48.                 }
  49.             }
  50.         },{
  51.             title: 'Tab 2',
  52.             id: 'tab2'
  53.         },{
  54.             title: 'Tab 3',
  55.             id: 'tab3'
  56.         },{
  57.             title: 'Tab 4',
  58.             id: 'tab4'
  59.         },{
  60.             title: 'Tab 5',
  61.             id: 'tab5'
  62.         }],
  63.         
  64.         listeners: {
  65.             'tabchange': function(tabPanel, tab){
  66.                 // Ignore tab1 since it is a separate tab panel and we're managing history for it also.
  67.                 // We'll use its handler instead in that case so we don't get duplicate nav events for sub tabs.
  68.                 if(tab.id != 'tab1'){
  69.                     Ext.History.add(tabPanel.id + tokenDelimiter + tab.id);
  70.                 }
  71.             }
  72.         }
  73.     });
  74.     
  75.     // Handle this change event in order to restore the UI to the appropriate history state
  76.     Ext.History.on('change', function(token){
  77.         if(token){
  78.             var parts = token.split(tokenDelimiter);
  79.             var tabPanel = Ext.getCmp(parts[0]);
  80.             var tabId = parts[1];
  81.             
  82.             tabPanel.show();
  83.             tabPanel.setActiveTab(tabId);
  84.         }else{
  85.             // This is the initial default state.  Necessary if you navigate starting from the
  86.             // page without any existing history token params and go back to the start state.
  87.             tp.setActiveTab(0);
  88.             tp.getItem(0).setActiveTab(0);
  89.         }
  90.     });
  91.     
  92. });</pre>    
  93. </body>
  94. </html>