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
- Include Asual's jQuery Address library before the tab module: <script src="jquery.address.js"></script>.
- Disable history if you don't need it: { history: false }.
- 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
- Bundle jquery.address.js whenever tab history is enabled.
- Feature-detect $.address before initializing tab history.
- Consider migrating to native history APIs.
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
- History enabled, but no path was specified
- jquery-serialize-object is required to add form data to an e
- You attempted to load content without API module
- The method you called is not defined
- Activated tab cannot be found. Tabs are case-sensitive.
AI-assisted analysis of Semantic-Org/Semantic-UI@597843ab84 (2026-08-13).
Data as JSON: /api/errors/bd2df52bdcb0dc9d.
Report an issue: GitHub.