У меня есть две html-страницы и файл JavaScript.
Реализация
First html
страница публикует сообщение, а страница second html
подписывается на опубликованное сообщениеи выполняет действие, основанное на опубликованном сообщении на второй странице.
Постановка проблемы
Публикация и подписка работают нормально на той же HTML-странице, но возникают проблемы при работемежду двумя html-страницами.
Проблема в том, что подписанное сообщение отображается на первой HTML-странице, а не на второй HTML-странице.
Первая HTML-страница
<script>
function clickMe() {
messageBus.publish('event', 4);
}
</script>
Вторая HTML-страница
<script>
messageBus.subscribe('event', function(data) {
$("#div1").text(data);
});
</script>
<div id="div1"></div>
JS-файл
var messageBus = {
events: {},
publish: function(eventType, data) {
if (typeof(Storage) !== "undefined") {
var myFunc = localStorage.getItem(eventType);
var e = eval('(' + myFunc + ')');
if(e) {
e(data);
}
}
},
subscribe: function(eventType, fn) {
if (typeof(Storage) !== "undefined") {
localStorage.setItem(eventType, fn);
}
},
unsubscribe: function(eventType) {
if (typeof(Storage) !== "undefined") {
localStorage.removeItem(eventType);
}
}
}
Что-то упущено в реализации?Дайте мне знать, если для прояснения вопроса требуется больше материалов.