【问题标题】:Is there any advantage of samm.js title over plain javascript title?samm.js 标题比普通的 javascript 标题有什么优势吗?
【发布时间】:2014-04-17 10:21:55
【问题描述】:
我在我的小型单页应用程序中使用了 knockout 和 sammy.js。
在路由过程中导航时,我需要修改浏览器窗口的标题。 Sammy.js 有一个 specific plugin 来处理这个问题,但是看着 source code 在我看来这只是一个简单的 document.title = '...'; 包装器。
那么这个插件比我的路由中的普通 document.title 有什么优势?
【问题讨论】:
标签:
knockout.js
single-page-application
sammy.js
【解决方案1】:
唯一需要改变窗口标题的就是修改 document.title 属性。这个 Sammy 插件提供的是一种构建标题的方法。
查看他们的源代码,他们提供了 2 个选项:
(1) 使用 setTitle 并给它一个字符串。这将设置标题的第一部分,该部分将在整个应用程序中继续使用。它不会改变浏览器的标题。
示例(来自他们的源代码):
this.setTitle('My App -');
现在,对于每条需要唯一标题的路线,您接下来要做的是:
this.title('Home');
现在将出现在浏览器标题中的结果标题是:“我的应用程序 - 主页”
在另一个页面上,它可能是:“我的应用程序 - 服务”
等等。这使您可以轻松地为标题保留静态部分,以防万一您不希望它消失。
(2) 提供您自己的函数来构建标题。如果您有很多条件或特殊规则要遵循,这将很有用。您的函数可以简单地将所有内容转换为大写或您需要的任何其他内容。
例子:
this.setTitle(function(title) {
return title.toUpperCase();
});
现在,当您设置标题时,它将始终为大写。
this.title('Home');
生成的标题将是:HOME
如此简短的回答,如果您想使用简单的标题,那么请务必直接使用 document.title。如果您有规则、转换或希望在开头保留公司名称以影响页面标题,那么您可能需要使用该插件。