."}}]}]}

Semantic-Org/Semantic-UI · error

History requires Asual's Address library <https://github.com

Error message

History requires Asual's Address library <https://github.com/asual/jquery-address>

What it means

Semantic UI Tab error logged at tab.js:182 when history support is enabled but $.address (Asual's jQuery Address library) is not loaded. Tab's history feature depends on that external library; without it the feature cannot function.

Source

Thrown at src/definitions/modules/tab.js:931

  onFirstLoad : function(tabPath, parameterArray, historyEvent) {}, // called first time loaded
  onLoad      : function(tabPath, parameterArray, historyEvent) {}, // called on every load
  onVisible   : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible
  onRequest   : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content

  templates : {
    determineTitle: function(tabArray) {} // returns page title for path
  },

  error: {
    api        : 'You attempted to load content without API module',
    method     : 'The method you called is not defined',
    missingTab : 'Activated tab cannot be found. Tabs are case-sensitive.',
    noContent  : 'The tab you specified is missing a content url.',
    path       : 'History enabled, but no path was specified',
    recursion  : 'Max recursive depth reached',
    legacyInit : 'onTabInit has been renamed to onFirstLoad in 2.0, please adjust your code.',
    legacyLoad : 'onTabLoad has been renamed to onLoad in 2.0. Please adjust your code',
    state      : 'History requires Asual\'s Address library <https://github.com/asual/jquery-address>'
  },

  metadata : {
    tab    : 'tab',
    loaded : 'loaded',
    promise: 'promise'
  },

  className   : {
    loading : 'loading',
    active  : 'active'
  },

  selector    : {
    tabs : '.ui.tab',
    ui   : '.ui'
  }

View on GitHub (pinned to 597843ab84)

Solutions

  1. Include Asual's jQuery Address library before the tab module: <script src="jquery.address.js"></script>.
  2. Disable history if you don't need it: { history: false }.
  3. Migrate to a modern router (HTML5 history + your framework) and stop relying on $.address.

Example fix

// before
<script src="semantic-tab.js"></script>
// after
<script src="jquery.address.js"></script>
<script src="semantic-tab.js"></script>
Defensive patterns

Strategy: type-guard

Validate before calling

if (typeof $.address === 'undefined') {
  console.warn('Disabling tab history: jquery.address is not loaded');
  tabConfig.history = false;
}
$('.menu .item').tab(tabConfig);

Type guard

function isAddressLibraryLoaded() { return typeof $.address !== 'undefined'; }

Prevention

When it happens

Trigger: Initializing $('.menu .item').tab({ history: true }) on a page that has not loaded jquery.address.js (or the equivalent Asual library).

Common situations: Custom bundles missing the address library; switching from CDN to self-hosted and forgetting one script; legacy sites that used hash history but the address script got dropped.

Related errors


AI-assisted analysis of Semantic-Org/Semantic-UI@597843ab84 (2026-08-13). Data as JSON: /api/errors/bd2df52bdcb0dc9d. Report an issue: GitHub.