肯定有一些方法可以实现这一目标。您可以使用服务器端语言的某些功能来实现,这些功能允许将页面内容包含在另一个页面中,或者如果您没有任何服务器端技术,您可以简单地将代码放在它自己的 html 文档中并使用 AJAX 加载它的内容。
在 jQuery 中,它可能看起来像:
$('#header').load('header.html');
但是,如果所有页面的内容都不是静态的,您总是可以定义一个负责呈现此标头的 JS 模块。您的模块可以使用客户端模板引擎,如Mustache、Handlebars等。但是您不必使用其中任何一个。
这是一个简单的例子:
演示
//in somefile.js, please note that you should namespace your modules
var Header = {
//default config
config: {
el: '#header',
title: 'Some title'
},
init: function (config) {
var cfg = this.config = $.extend({}, this.config, config);
$(cfg.el).html('<h1>' + cfg.title + '</h1>');
}
};
$(function () {
Object.create(Header).init({
title: 'Some other title'
});
Object.create(Header).init({
el: '#header1',
title: 'Yeah'
});
});