最近一个项目使用了renren-security这个开源框架,先纵览一下外观,

嗯,确认过眼神,是传统管理后台的样子~
使用过程中发现,当在导航栏中点击同一菜单时,iframe并不会刷新,其实这也不算个问题,奈何产品经理就要这个功能,只好看看人家源码是怎么写的了,很容易在index.js中就找到了控制路由的代码(真正的开源应当如此*▽*):
function routerList(router, menuList) {
for (var key in menuList) {
var menu = menuList[key];
if (menu.type == 0) {
routerList(router, menu.list);
} else if (menu.type == 1) {
router.add('#' + menu.url, function () {
var url = window.location.hash;
//替换iframe的url
vm.main = url.replace('#', '');
//导航菜单展开
$(".treeview-menu li").removeClass("active");
$("a[href='" + url + "']").parents("li").addClass("active");
vm.navTitle = $("a[href='" + url + "']").text(

在使用renren-security框架时,发现导航栏点击同一菜单不刷新iframe。通过研究源码,了解到问题在于window.location.hash未改变。解决方法包括:1.点击时修改hash加时间戳确保每次不同;2.通过父页面刷新iframe内容。当在二级页面跳转时,使用统一的goNext方法,避免window.location.href导致的问题,确保点击同一菜单能正确刷新一级页面。
最低0.47元/天 解锁文章
42





