如何在其他页面上处于活动状态时更新其他页面标题?
how to update other page title while active on other page?
比如说,我在"Create Order"页面,一旦我下单并保存,"Jobs [0]"页面会增加1并显示为"Jobs 1"。像那样的东西。
我已经在 SO 上看到了一些答案,但它使用了 activate 方法,在该方法中,用户必须在页面中才能更改页面标题。请指教
下面是我的侧边栏
您可以使用storage
的message_receive
事件侦听器来申请,每次您在任何其他选项卡中设置localStorage的任何值时都会调用函数message_receive
。
注册事件侦听器,您将从不同选项卡获取消息
window.addEventListener("storage", message_receive);
function message_receive(ev) {
if (ev.key == 'message') {
var message=ev.newValue;
// Set your title here, using document.title='your formatted title'
}
}
消息广播将消息广播给每个监听器
function message_broadcast(message) {
localStorage.removeItem('message');
localStorage.setItem('message',message);
}
假设您的边栏菜单是这样实现的。
<a
repeat.for="row of router.navigation"
href.bind="row.href"
class.bind="row.isActive ? 'active' : ''"
>${row.title}</a>
您不需要更新路线的标题本身。
无论如何,您正在跟踪 front-end 代码中的工作总数,只需在路线标题后显示该变量 "jobs"。
<a
repeat.for="row of router.navigation"
href.bind="row.href"
class.bind="row.isActive ? 'active' : ''"
>${row.title} <span if.bind="row.config.name == 'jobs'">[${jobCount}]</span></a>
比如说,我在"Create Order"页面,一旦我下单并保存,"Jobs [0]"页面会增加1并显示为"Jobs 1"。像那样的东西。
我已经在 SO 上看到了一些答案,但它使用了 activate 方法,在该方法中,用户必须在页面中才能更改页面标题。请指教
下面是我的侧边栏
您可以使用storage
的message_receive
事件侦听器来申请,每次您在任何其他选项卡中设置localStorage的任何值时都会调用函数message_receive
。
注册事件侦听器,您将从不同选项卡获取消息
window.addEventListener("storage", message_receive);
function message_receive(ev) {
if (ev.key == 'message') {
var message=ev.newValue;
// Set your title here, using document.title='your formatted title'
}
}
消息广播将消息广播给每个监听器
function message_broadcast(message) {
localStorage.removeItem('message');
localStorage.setItem('message',message);
}
假设您的边栏菜单是这样实现的。
<a
repeat.for="row of router.navigation"
href.bind="row.href"
class.bind="row.isActive ? 'active' : ''"
>${row.title}</a>
您不需要更新路线的标题本身。
无论如何,您正在跟踪 front-end 代码中的工作总数,只需在路线标题后显示该变量 "jobs"。
<a
repeat.for="row of router.navigation"
href.bind="row.href"
class.bind="row.isActive ? 'active' : ''"
>${row.title} <span if.bind="row.config.name == 'jobs'">[${jobCount}]</span></a>