FastAdmin 无刷新地址改变

群里有人问 FastAdmin 是不是用了 pjax?

之前有看到 Karson 回复过,其实 FastAdmin 用的是 HTML5 的一个History API pushState

那代码在哪里呢?

require-backend.min.js

        if (history.pushState) {
//浏览器前进后退事件
$(window).on("popstate", function (e) {
var state = e.originalEvent.state;
if (state) {
$("a[addtabs=" + state.id + "]", options.monitor).data("pushstate", true).trigger("click");
}
});
}
$(options.monitor).on('click', '[addtabs]', function (e) {
if ($(this).attr('url').indexOf("javascript:") !== 0) {
if ($(this).is("a")) {
e.preventDefault();
}
var id = $(this).attr('addtabs');
var title = $(this).attr('title') ? $(this).attr('title') : $.trim($(this).text());
var url = $(this).attr('url');
var content = options.content ? options.content : $(this).attr('content');
var ajax = $(this).attr('ajax') === '1' || $(this).attr('ajax') === 'true';
var state = ({
url: url, title: title, id: id, content: content, ajax: ajax
}); document.title = title;
if (history.pushState && !$(this).data("pushstate")) {
var pushurl = url.indexOf("ref=addtabs") === -1 ? (url + (url.indexOf("?") > -1 ? "&" : "?") + "ref=addtabs") : url;
try {
window.history.pushState(state, title, pushurl);
} catch (e) { }
}
$(this).data("pushstate", null);
_add.call(this, {
id: id,
title: $(this).attr('title') ? $(this).attr('title') : $(this).html(),
content: content,
url: url,
ajax: ajax
});
}
});

我们始终相信,完美的也是脆弱的,不要一味的追求完美却忘了最初的目标。

最新文章

  1. pwnable.kr-bof
  2. ComponentOne Studio for Enterprise 2015 v1 全新发布
  3. Tomcat 内存和线程配置优化
  4. Java for LeetCode 071 Simplify Path
  5. vc2010 win32 控制台应用程序中文乱码
  6. sql里Where条件顺序
  7. html游戏引擎,createJs框架
  8. Android Security
  9. js 排序:sort()方法、冒泡排序、二分法排序。
  10. ZooKeeper客户端事件串行化处理
  11. [Swift]LeetCode163. 缺失区间 $ Missing Ranges
  12. Charles 抓包工具(新猿旺学习总结)
  13. Apache多站点配置(ubuntu)(原创)
  14. javascript面向对象精要第二章函数整理精要
  15. Redis(三)源source编译
  16. nginx优化——包括https、keepalive等
  17. HDU-3608 最长回文
  18. FFmpeg(14)-使用NDK、C++完成EGL,display, surface, context的配置和初始化
  19. 网络安全、Web安全、渗透测试之笔经面经总结(三)
  20. mysql 优化之 doublewrite buffer 机制

热门文章

  1. zsh 安装powerline 主题特效
  2. 设计模式--命令模式C++实现
  3. 23.FutureTask基本操作总结
  4. HTML5:了解Polyfills
  5. hdu 5818 Joint Stacks (优先队列)
  6. LeetCode OJ:Number of 1 Bits(比特1的位数)
  7. Week08《Java程序设计》第八次学习总结
  8. C++11_ tuple
  9. Kotlin Reference (一) Basic Syntax
  10. OPEN(SAP) UI5 学习入门系列之三:MVC (下) - 视图与控制器