解决iframe作为子窗口,刷新后页面跳转回默认首页的问题
这个问题真的是让我难受,从写php到thinkphp我用过了好几个后台框架。最后还是决定用花了几百大洋的H+。每个人都有自己的偏好,习惯用layui,vue的可能不太喜欢这个。我这人是心血来潮想用那个就把那个搬出来用,想用layui了就把它套进去,想用vue就把它也按进去。这个框架我个人比较喜欢,但是也有它的问题,就是iframe作为子窗口,刷新后页面跳转回默认首页这个问题在我之前几个项目...
这个问题真的是让我难受,从写php到thinkphp我用过了好几个后台框架。最后还是决定用花了几百大洋的H+。每个人都有自己的偏好,习惯用layui,vue的可能不太喜欢这个。我这人是心血来潮想用那个就把那个搬出来用,想用layui了就把它套进去,想用vue就把它也按进去。这个框架我个人比较喜欢,但是也有它的问题,就是
iframe作为子窗口,刷新后页面跳转回默认首页
这个问题在我之前几个项目上就发现这个问题,并且tp5跳转后还是有点小问题,每个页面在框架内就是单独的页面,想起大学老师说的“画中画”。这个也不是说没好处,不管你在里面写了什么,地址栏都不会变,就算别人复制了你的url打开还是起始页。
但是项目需求不是这个样的,就得改,然后就在网上一堆查。说了很多,我js功底浅,有些方法还是没看懂,就按照说的来挨着试,总算找到一个能满足我需求的方法,分享给大家。
function loadIframe(url) {
//获取url链接
var u = window.location.href;
//因为每次获取的链接中都有之前的旧锚点,
//所以需要把#之后的旧锚点去掉再来加新的锚点(即传入的url参数)
var end = u.indexOf("#");
var rurl = u.substring(0,end);
//设置新的锚点
window.location.href = rurl + "#" + url;
}
var hash = location.hash;
var url = hash.substring(1,hash.length);
$("#iframe").attr("src", url); //别忘了加id
直接把这个粘贴进去,然后在你左侧栏里面,把href=“creatCata.html”
换成onclick="loadIframe('creatCata.html')"
,好了,这样地址栏就变了http://127.0.0.5/admin/index/index.html#creatCata.html
,刷新也不会变,点击都正常了。
如果对这个不满意的可以去下载X-admin,里面也是用的js方法
每次点击原来的url不变,刷新也不变,还能保持原来的东西,但是好像每次刷新都是最后一个打开的页面。
更多推荐
所有评论(0)