我使用knockout和sammy.js作为我的小单页应用程序。
在路由期间导航时,我需要修改浏览器窗口的标题。 Sammy.js有一个specific plugin来处理这个问题,但看着source code,我认为这只是document.title = '...';
的简单包装。
那么这个插件在我的路由中提供了什么优势呢?
答案 0 :(得分:2)
更改窗口标题所需的唯一内容是修改document.title属性。这个Sammy插件提供的是一种构建游戏的方法。
查看他们的源代码,他们提供了两个选项:
(1)使用setTitle并给它一个String。这将设置将继续在整个应用程序中使用的标题的第一部分。它不会改变浏览器的标题。
示例(来自他们的源代码):
this.setTitle('My App -');
现在,您希望获得唯一标题的每条路线的下一步是:
this.title('Home');
现在显示在浏览器标题中的结果标题是:"我的应用程序 - 主页"
在另一页上它可能是:"我的应用程序 - 服务"
等等。这样,您就可以轻松地将静态部分保留到标题中,以防您不想让它消失。
(2)提供自己的功能来构建标题。如果您有很多条件或特殊规则,这将非常有用。您的功能可以简单地将所有内容转换为大写或其他任何您需要的内容。
示例:
this.setTitle(function(title) {
return title.toUpperCase();
});
现在,当您设置标题时,它将始终为大写。
this.title('Home');
结果标题为:HOME
如此简短的回答,如果您想要使用简单的标题,那么请务必直接使用document.title。如果您有规则,转换或想要保留公司名称,那么您可能希望使用该插件。