Brando ZWZ cung cấp một số câu trả lời tuyệt vời để xử lý tình huống này.
Re: Cùng điều hướng trên nhiều trang 21/08/2018 10:13 AM | LINK
Theo như tôi biết, có nhiều giải pháp.
Ví dụ:
Toàn bộ mã cho thanh điều hướng nằm trong tệp nav.html (không có bất kỳ html hoặc thẻ nội dung nào, chỉ có mã cho thanh điều hướng).
Sau đó, chúng tôi có thể tải trực tiếp nó từ jquery mà không cần viết nhiều mã.
Như thế này:
<div id="nav-placeholder">
</div>
<script>
$(function(){
$("#nav-placeholder").load("nav.html");
});
</script>
Giải pháp 2:
Bạn có thể sử dụng mã JavaScript để tạo toàn bộ thanh điều hướng.
Như thế này:
Mã Javascript:
$(function () {
var bar = '';
bar += '<nav class="navbar navbar-default" role="navigation">';
bar += '<div class="container-fluid">';
bar += '<div>';
bar += '<ul class="nav navbar-nav">';
bar += '<li id="home"><a href="home.html">Home</a></li>';
bar += '<li id="index"><a href="index.html">Index</a></li>';
bar += '<li id="about"><a href="about.html">About</a></li>';
bar += '</ul>';
bar += '</div>';
bar += '</div>';
bar += '</nav>';
$("#main-bar").html(bar);
var id = getValueByName("id");
$("#" + id).addClass("active");
});
function getValueByName(name) {
var url = document.getElementById('nav-bar').getAttribute('src');
var param = new Array();
if (url.indexOf("?") != -1) {
var source = url.split("?")[1];
items = source.split("&");
for (var i = 0; i < items.length; i++) {
var item = items[i];
var parameters = item.split("=");
if (parameters[0] == "id") {
return parameters[1];
}
}
}
}
Html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<div id="main-bar"></div>
<script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<%--add this line to generate the nav bar--%>
<script src="../assets/js/nav-bar.js?id=index" id="nav-bar"></script>
</body>
</html>
https://forums.asp.net/t/2145711.aspx?Same+navbar+on+multiple+pages
about.html
trình duyệt sẽ tải. Vì vậy, nó phải chứa cùng một điều hướng.