diff --git a/IPython/html/static/widgets/js/manager.js b/IPython/html/static/widgets/js/manager.js
index 8ea6245..1b982da 100644
--- a/IPython/html/static/widgets/js/manager.js
+++ b/IPython/html/static/widgets/js/manager.js
@@ -103,10 +103,20 @@ define([
};
// Use local storage to persist widgets across page refresh by default.
+ // LocalStorage is per domain, so we need to explicitly set the URL
+ // that the widgets are associated with so they don't show on other
+ // pages hosted by the noteboook server.
+ var url = [window.location.protocol, '//', window.location.host, window.location.pathname].join('');
WidgetManager.set_state_callbacks(function() {
- return JSON.parse(localStorage.widgets || '{}');
+ if (localStorage.widgets && localStorage.widgets[url]) {
+ return JSON.parse(localStorage.widgets[url]);
+ }
+ return {};
}, function(state) {
- localStorage.widgets = JSON.stringify(state);
+ if (localStorage.widgets === undefined) {
+ localStorage.widgets = {};
+ }
+ localStorage.widgets[url] = JSON.stringify(state);
});
//--------------------------------------------------------------------