其实我的js执行的是一个弹窗,只想让其在第一次跳转的时候弹出。而之后刷新页面,不想再让其弹出
逻辑
从前一个跳转过来的页面中,修改地址栏,加上一个参数。在要弹窗的页面中,判断这个参数是否存在。存在则调用弹窗方法。执行完后,修改地址栏(修改并不刷新),然后刷新之后,并不会再次弹窗。
跳转前的页面
<a id="turnToAlumList" onclick="turnToAlumList()">新建案例</a>
<script type="text/javascript">
//使用js实现新建案例的页面跳转
function turnToAlumList() {
//举个例子,本来你想要访问的页面是http://www.fff.com
//加上一个判断参数:http://www.fff.com?isRefresh=false
//这样并不会影响你的跳转
location.href = '你要跳转的页面url加上参数&isRefresh=false';//跳转页面
}
</script>
跳转之后的页面
- 获取地址栏参数的方法
<script language="javascript" type="text/javascript">
//获取地址栏参数的方法
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
</script>
- 第一次执行js后,修改地址栏url
<script language="javascript" type="text/javascript">
//第一次弹窗,弹窗后修改地址栏,并让之后按着修改后的地址栏进行刷新
//我们刚刚设置的参数名字为isRefresh,值是false。这边通过GetQueryString方法就可以获取到
var isRefresh = GetQueryString("isRefresh");
window.onload = function () {
//第一次过来的时候,获取到了参数值,所以会弹窗
if(isRefresh == "false"){
getTip(0); //这是我本人的弹窗方法,改成你自己的
var url = window.location.href;
window.history.pushState({},0,"这里放上不带参数的原url");
}
}
</script>
实现效果
最后实现效果:
最后实现仅仅在第一次跳转弹出那个窗口,而刷新不会再弹出