FastAdmin 无刷新地址改变
2024-09-25 05:49:42
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
});
}
});
我们始终相信,完美的也是脆弱的,不要一味的追求完美却忘了最初的目标。
最新文章
- pwnable.kr-bof
- ComponentOne Studio for Enterprise 2015 v1 全新发布
- Tomcat 内存和线程配置优化
- Java for LeetCode 071 Simplify Path
- vc2010 win32 控制台应用程序中文乱码
- sql里Where条件顺序
- html游戏引擎,createJs框架
- Android Security
- js 排序:sort()方法、冒泡排序、二分法排序。
- ZooKeeper客户端事件串行化处理
- [Swift]LeetCode163. 缺失区间 $ Missing Ranges
- Charles 抓包工具(新猿旺学习总结)
- Apache多站点配置(ubuntu)(原创)
- javascript面向对象精要第二章函数整理精要
- Redis(三)源source编译
- nginx优化——包括https、keepalive等
- HDU-3608 最长回文
- FFmpeg(14)-使用NDK、C++完成EGL,display, surface, context的配置和初始化
- 网络安全、Web安全、渗透测试之笔经面经总结(三)
- mysql 优化之 doublewrite buffer 机制
热门文章
- zsh 安装powerline 主题特效
- 设计模式--命令模式C++实现
- 23.FutureTask基本操作总结
- HTML5:了解Polyfills
- hdu 5818 Joint Stacks (优先队列)
- LeetCode OJ:Number of 1 Bits(比特1的位数)
- Week08《Java程序设计》第八次学习总结
- C++11_ tuple
- Kotlin Reference (一) Basic Syntax
- OPEN(SAP) UI5 学习入门系列之三:MVC (下) - 视图与控制器