javascript - html 像布局引擎一样导入
问题描述
在 php 上,实现看起来很简单,假设我们有文件:header.html、body.html。然后我们的代码 index.php 将如下所示:
<html>
<body>
<? = require(' header.html ')?>
<div class = "main">
<? = require(' body.html ')?>
</div>
</body>
</html>
有可能做这样的事情吗?
<html>
<body>
<link rel = "import" href = "header.html">
<div class = "main">
<link rel = "import" href = "body.html">
</div>
<script>
/ * A magic js function that replaces <link rel = "import"> with the content of the html document * /
</script>
</body>
</html>
PS 我知道这将适用于数量非常有限的浏览器。
解决方案
有许多 JavaScript 模板引擎可用。 Handlebars.js和Mustache.js使用大括号表示变量。 Jade/Pug完全不用括号。
您可以构建自己的模板库并使用您想要的任何格式。它适用的浏览器范围取决于您愿意支持多远的历史。
PHP 允许您导入静态页眉和页脚,而使用 JavaScript,您更有可能拥有一个内置页眉和页脚的静态模板,并动态导入正文内容。我们在 Google 图片搜索和 Pinterest 等网站上经常看到延迟加载内容。
推荐阅读
- javascript - jQuery UI multiple resizable divs not bigger than parent div
- javascript - 如何在后台下载PDF文件
- stocktwits - 是否有可能从 stocktwits 获得超过 30 条消息?
- git - git - 处理可能有冲突的多个拉取请求
- javascript - 在 Vue 应用程序上显示 RSS Feed 或 API
- redux - 如何在 React-Redux 中将 state sanitizer 与现有的中间件结合起来
- bash - 在终端 Mac OS X 中大量删除具有通用前缀的文件
- postgresql - PostgreSQL 需要行返回,即使结果为 0
- php - 在 Plesk 和 CentOS 下无法获取旧版本的 PHP 以使用 MySQL
- c# - WiX 在 CustomActionData 中转义 XPath 括号